{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Python for Finance (2nd ed.)\n",
    "\n",
    "**Mastering Data-Driven Finance**\n",
    "\n",
    "&copy; Dr. Yves J. Hilpisch | The Python Quants GmbH\n",
    "\n",
    "<img src=\"http://hilpisch.com/images/py4fi_2nd_shadow.png\" width=\"300px\" align=\"left\">"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Input-Output Operations"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Basic I/O with Python"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Writing Objects to Disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "from pylab import plt, mpl\n",
    "plt.style.use('seaborn')\n",
    "mpl.rcParams['font.family'] = 'serif'\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "uuid": "c2722e94-01ea-4f98-804f-56fe1b666770"
   },
   "outputs": [],
   "source": [
    "import pickle  \n",
    "import numpy as np\n",
    "from random import gauss   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "uuid": "7d03b06c-a907-4a16-913f-e6a8f9a05d51"
   },
   "outputs": [],
   "source": [
    "a = [gauss(1.5, 2) for i in range(1000000)]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "uuid": "d5bf9798-386b-49b8-a703-36263d9d75d4"
   },
   "outputs": [],
   "source": [
    "# adjust to path of your choice\n",
    "path = '/Users/yves/Temp/data/'  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "uuid": "4aa88b7c-3155-4311-9afc-564bf3b06225"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'wb')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "uuid": "e2611db7-97ed-4162-9cc5-127c7cd89cbd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 34.9 ms, sys: 10.2 ms, total: 45.1 ms\n",
      "Wall time: 44 ms\n"
     ]
    }
   ],
   "source": [
    "%time pickle.dump(a, pkl_file)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "uuid": "f2b0c608-c399-401b-b8fa-d44d8eca54b8"
   },
   "outputs": [],
   "source": [
    "pkl_file.close()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "uuid": "f401db99-56f3-49a5-9c75-772fe5d00d07"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  9002006 Dec  1 12:18 /Users/yves/Temp/data/data.pkl\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "uuid": "8c9bd301-e980-4eb5-9021-4fde182f5eb7"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'rb')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "uuid": "6c8c4ae7-1ece-4b7c-87bc-8457da4798b2"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 35 ms, sys: 14.5 ms, total: 49.5 ms\n",
      "Wall time: 48.4 ms\n"
     ]
    }
   ],
   "source": [
    "%time b = pickle.load(pkl_file)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "uuid": "253951a8-ecec-4fdf-a502-86cfa1d1186d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.8443022884517591, -0.16680410794255618, 4.798921908871666]"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "uuid": "8bf2e00b-fa06-4524-aa51-6b295fabad00"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[0.8443022884517591, -0.16680410794255618, 4.798921908871666]"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "b[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "uuid": "90b9f136-8195-4f32-9907-1b88469ae55e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.allclose(np.array(a), np.array(b))  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "uuid": "7a6b9460-b5ac-4ab5-b083-9912f9dfcef8"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'wb')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "uuid": "bd6b8e9a-d093-4f98-b88c-27aef388957b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 170 ms, sys: 7.04 ms, total: 177 ms\n",
      "Wall time: 43.5 ms\n"
     ]
    }
   ],
   "source": [
    "%time pickle.dump(np.array(a), pkl_file)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "uuid": "d517f9d6-8176-424c-89ef-0c892f9fd61c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 190 ms, sys: 6.54 ms, total: 197 ms\n",
      "Wall time: 48.4 ms\n"
     ]
    }
   ],
   "source": [
    "%time pickle.dump(np.array(a) ** 2, pkl_file)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "uuid": "5f558934-6f53-472e-9040-a5c96ee1718d"
   },
   "outputs": [],
   "source": [
    "pkl_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "uuid": "b129b0ae-6bcc-4946-817a-ff01c155eacb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  16000322 Dec  1 12:18 /Users/yves/Temp/data/data.pkl\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "uuid": "59d5dceb-8779-46ff-b2ae-c2e43a7d2c10"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'rb')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "uuid": "0f981d7b-0a68-412d-bb9b-a377524e0f2c"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.84430229, -0.16680411,  4.79892191,  0.5757952 ])"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x = pickle.load(pkl_file)  \n",
    "x[:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "uuid": "1a9cb2b5-a180-43f3-b2ed-20de3148b8a6"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.71284635,  0.02782361, 23.02965149,  0.33154011])"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "y = pickle.load(pkl_file)  \n",
    "y[:4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "uuid": "6beb0285-c53c-4f56-ac42-62000ef75257"
   },
   "outputs": [],
   "source": [
    "pkl_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "uuid": "df469b3f-55c4-43e8-a01d-f850f2153871"
   },
   "outputs": [],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'wb')\n",
    "pickle.dump({'x': x, 'y': y}, pkl_file)  \n",
    "pkl_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "uuid": "e6f0219a-ceb4-481d-b033-065e122493c8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "x [ 0.84430229 -0.16680411  4.79892191  0.5757952 ]\n",
      "y [ 0.71284635  0.02782361 23.02965149  0.33154011]\n"
     ]
    }
   ],
   "source": [
    "pkl_file = open(path + 'data.pkl', 'rb')\n",
    "data = pickle.load(pkl_file)  \n",
    "pkl_file.close()\n",
    "for key in data.keys():\n",
    "    print(key, data[key][:4])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "uuid": "dc3181d1-7c8c-4960-8a9a-8a4d64c58a3f"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Reading and Writing Text Files"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "uuid": "5124219c-e041-4b36-af62-03faea5c0df1"
   },
   "outputs": [],
   "source": [
    "rows = 5000  \n",
    "a = np.random.standard_normal((rows, 5)).round(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "uuid": "5942c6e2-877a-4c0c-acca-11390e9a02f5"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-0.1127,  0.4671,  1.1779,  0.9264,  1.5513],\n",
       "       [ 0.7189,  2.4128, -0.2564, -0.5164, -1.4229],\n",
       "       [ 0.858 ,  0.5759, -1.0789, -0.9439,  1.8605],\n",
       "       ...,\n",
       "       [ 0.3933, -0.3576,  0.4071, -0.294 ,  0.882 ],\n",
       "       [ 0.5778, -0.4286,  0.5115,  0.7564, -0.7401],\n",
       "       [ 0.7476, -0.3972,  0.2264, -1.2528,  0.7145]])"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "a  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {
    "uuid": "32f5b082-2fcb-4090-80ba-174cc347e519"
   },
   "outputs": [],
   "source": [
    "t = pd.date_range(start='2019/1/1', periods=rows, freq='H')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {
    "uuid": "d52b1a47-3bca-4870-9829-1aef62f0952a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2019-01-01 00:00:00', '2019-01-01 01:00:00',\n",
       "               '2019-01-01 02:00:00', '2019-01-01 03:00:00',\n",
       "               '2019-01-01 04:00:00', '2019-01-01 05:00:00',\n",
       "               '2019-01-01 06:00:00', '2019-01-01 07:00:00',\n",
       "               '2019-01-01 08:00:00', '2019-01-01 09:00:00',\n",
       "               ...\n",
       "               '2019-07-27 22:00:00', '2019-07-27 23:00:00',\n",
       "               '2019-07-28 00:00:00', '2019-07-28 01:00:00',\n",
       "               '2019-07-28 02:00:00', '2019-07-28 03:00:00',\n",
       "               '2019-07-28 04:00:00', '2019-07-28 05:00:00',\n",
       "               '2019-07-28 06:00:00', '2019-07-28 07:00:00'],\n",
       "              dtype='datetime64[ns]', length=5000, freq='H')"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "t  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {
    "uuid": "39075f54-64cb-42c2-9798-be6638636a15"
   },
   "outputs": [],
   "source": [
    "csv_file = open(path + 'data.csv', 'w')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "metadata": {
    "uuid": "3804898d-dae7-4de0-b0a1-976cd8e43cb3"
   },
   "outputs": [],
   "source": [
    "header = 'date,no1,no2,no3,no4,no5\\n'  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {
    "uuid": "3804898d-dae7-4de0-b0a1-976cd8e43cb3"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "25"
      ]
     },
     "execution_count": 33,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "csv_file.write(header)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {
    "uuid": "00c96e45-bf91-42d8-b6c9-eb343ee537b7"
   },
   "outputs": [],
   "source": [
    "for t_, (no1, no2, no3, no4, no5) in zip(t, a):  \n",
    "    s = '{},{},{},{},{},{}\\n'.format(t_, no1, no2, no3, no4, no5)  \n",
    "    csv_file.write(s)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {
    "uuid": "00c96e45-bf91-42d8-b6c9-eb343ee537b7"
   },
   "outputs": [],
   "source": [
    "csv_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {
    "uuid": "03523876-01c1-410f-aac5-55fcf8aa0604"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  284781 Dec  1 12:18 /Users/yves/Temp/data/data.csv\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {
    "uuid": "b290e5d3-8e56-4d53-acae-51accd08c4f7"
   },
   "outputs": [],
   "source": [
    "csv_file = open(path + 'data.csv', 'r')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "metadata": {
    "uuid": "7b1242f5-5892-44bd-a305-addf9daff316"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "date,no1,no2,no3,no4,no5\n",
      "2019-01-01 00:00:00,-0.1127,0.4671,1.1779,0.9264,1.5513\n",
      "2019-01-01 01:00:00,0.7189,2.4128,-0.2564,-0.5164,-1.4229\n",
      "2019-01-01 02:00:00,0.858,0.5759,-1.0789,-0.9439,1.8605\n",
      "2019-01-01 03:00:00,-0.4758,0.7426,-0.2023,-1.7239,1.8032\n"
     ]
    }
   ],
   "source": [
    "for i in range(5):\n",
    "    print(csv_file.readline(), end='')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {
    "uuid": "2b2384ca-8927-49e1-8070-33ef0c21a1a9"
   },
   "outputs": [],
   "source": [
    "csv_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {
    "uuid": "00148061-9d3a-4459-b8b8-63c98f14194b"
   },
   "outputs": [],
   "source": [
    "csv_file = open(path + 'data.csv', 'r')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "metadata": {
    "uuid": "00148061-9d3a-4459-b8b8-63c98f14194b"
   },
   "outputs": [],
   "source": [
    "content = csv_file.readlines()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['date,no1,no2,no3,no4,no5\\n',\n",
       " '2019-01-01 00:00:00,-0.1127,0.4671,1.1779,0.9264,1.5513\\n',\n",
       " '2019-01-01 01:00:00,0.7189,2.4128,-0.2564,-0.5164,-1.4229\\n',\n",
       " '2019-01-01 02:00:00,0.858,0.5759,-1.0789,-0.9439,1.8605\\n',\n",
       " '2019-01-01 03:00:00,-0.4758,0.7426,-0.2023,-1.7239,1.8032\\n']"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "content[:5]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "metadata": {
    "uuid": "2b2384ca-8927-49e1-8070-33ef0c21a1a9"
   },
   "outputs": [],
   "source": [
    "csv_file.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "metadata": {
    "uuid": "2b2384ca-8927-49e1-8070-33ef0c21a1a9"
   },
   "outputs": [],
   "source": [
    "import csv"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(path + 'data.csv', 'r') as f:\n",
    "    csv_reader = csv.reader(f)  \n",
    "    lines = [line for line in csv_reader]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['date', 'no1', 'no2', 'no3', 'no4', 'no5'],\n",
       " ['2019-01-01 00:00:00', '-0.1127', '0.4671', '1.1779', '0.9264', '1.5513'],\n",
       " ['2019-01-01 01:00:00', '0.7189', '2.4128', '-0.2564', '-0.5164', '-1.4229'],\n",
       " ['2019-01-01 02:00:00', '0.858', '0.5759', '-1.0789', '-0.9439', '1.8605'],\n",
       " ['2019-01-01 03:00:00', '-0.4758', '0.7426', '-0.2023', '-1.7239', '1.8032']]"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lines[:5]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {},
   "outputs": [],
   "source": [
    "with open(path + 'data.csv', 'r') as f:\n",
    "    csv_reader = csv.DictReader(f)  \n",
    "    lines = [line for line in csv_reader]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[OrderedDict([('date', '2019-01-01 00:00:00'),\n",
       "              ('no1', '-0.1127'),\n",
       "              ('no2', '0.4671'),\n",
       "              ('no3', '1.1779'),\n",
       "              ('no4', '0.9264'),\n",
       "              ('no5', '1.5513')]),\n",
       " OrderedDict([('date', '2019-01-01 01:00:00'),\n",
       "              ('no1', '0.7189'),\n",
       "              ('no2', '2.4128'),\n",
       "              ('no3', '-0.2564'),\n",
       "              ('no4', '-0.5164'),\n",
       "              ('no5', '-1.4229')]),\n",
       " OrderedDict([('date', '2019-01-01 02:00:00'),\n",
       "              ('no1', '0.858'),\n",
       "              ('no2', '0.5759'),\n",
       "              ('no3', '-1.0789'),\n",
       "              ('no4', '-0.9439'),\n",
       "              ('no5', '1.8605')])]"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "lines[:3]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 49,
   "metadata": {
    "uuid": "2b2384ca-8927-49e1-8070-33ef0c21a1a9"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SQL Databases"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "uuid": "39c9650b-0430-4e66-b461-faecdb511537"
   },
   "outputs": [],
   "source": [
    "import sqlite3 as sq3"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "metadata": {
    "uuid": "cc01fd41-a6c6-426b-b235-42c903ff6c00"
   },
   "outputs": [],
   "source": [
    "con = sq3.connect(path + 'numbs.db')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "uuid": "9e163352-767b-4888-a286-9a79265bb19b"
   },
   "outputs": [],
   "source": [
    "query = 'CREATE TABLE numbs (Date date, No1 real, No2 real)'  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {
    "uuid": "d97dad1a-10cc-43c0-a04a-a5da9b98396b"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x11a5de8f0>"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "con.execute(query)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "metadata": {
    "uuid": "cc2e7d31-8239-48b0-b032-f11a514d9349"
   },
   "outputs": [],
   "source": [
    "con.commit()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "metadata": {},
   "outputs": [],
   "source": [
    "q = con.execute  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('table',\n",
       "  'numbs',\n",
       "  'numbs',\n",
       "  2,\n",
       "  'CREATE TABLE numbs (Date date, No1 real, No2 real)')]"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q('SELECT * FROM sqlite_master').fetchall()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {
    "uuid": "6d76f99f-f6bb-4aad-b386-06946366bbe6"
   },
   "outputs": [],
   "source": [
    "import datetime"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {
    "uuid": "a37b7780-d824-4558-b12e-9e5dec6b3056"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x11da57180>"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "now = datetime.datetime.now()\n",
    "q('INSERT INTO numbs VALUES(?, ?, ?)', (now, 0.12, 7.3))  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [],
   "source": [
    "np.random.seed(100)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "uuid": "5d882442-b6fb-4788-81b8-9f7814a352ae"
   },
   "outputs": [],
   "source": [
    "data = np.random.standard_normal((10000, 2)).round(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {
    "uuid": "58b51e61-ed1a-4c5e-999a-0f55072e5d32"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 101 ms, sys: 5.23 ms, total: 106 ms\n",
      "Wall time: 107 ms\n"
     ]
    }
   ],
   "source": [
    "%%time \n",
    "for row in data:  \n",
    "    now = datetime.datetime.now()\n",
    "    q('INSERT INTO numbs VALUES(?, ?, ?)', (now, row[0], row[1]))\n",
    "con.commit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "uuid": "667cbd3a-e001-4548-8679-10aec0d31354"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('2018-12-01 12:18:33.161133', 0.12, 7.3),\n",
       " ('2018-12-01 12:18:33.183389', -1.7498, 0.3427),\n",
       " ('2018-12-01 12:18:33.183557', 1.153, -0.2524),\n",
       " ('2018-12-01 12:18:33.183625', 0.9813, 0.5142)]"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q('SELECT * FROM numbs').fetchmany(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "uuid": "667cbd3a-e001-4548-8679-10aec0d31354"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('2018-12-01 12:18:33.183557', 1.153, -0.2524),\n",
       " ('2018-12-01 12:18:33.183625', 0.9813, 0.5142),\n",
       " ('2018-12-01 12:18:33.184241', 0.6727, -0.1044),\n",
       " ('2018-12-01 12:18:33.184306', 1.619, 1.5416)]"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q('SELECT * FROM numbs WHERE no1 > 0.5').fetchmany(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {
    "uuid": "c9217058-4cb9-49b9-b81b-a4c370fce834"
   },
   "outputs": [],
   "source": [
    "pointer = q('SELECT * FROM numbs')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {
    "uuid": "7088d1c6-aed9-457a-a84a-58b1718ad164"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "('2018-12-01 12:18:33.161133', 0.12, 7.3)\n",
      "('2018-12-01 12:18:33.183389', -1.7498, 0.3427)\n",
      "('2018-12-01 12:18:33.183557', 1.153, -0.2524)\n"
     ]
    }
   ],
   "source": [
    "for i in range(3):\n",
    "    print(pointer.fetchone())  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[('2018-12-01 12:18:33.183625', 0.9813, 0.5142),\n",
       " ('2018-12-01 12:18:33.183876', 0.2212, -1.07),\n",
       " ('2018-12-01 12:18:33.183957', -0.1895, 0.255)]"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rows = pointer.fetchall()  \n",
    "rows[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x10b373030>"
      ]
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q('DROP TABLE IF EXISTS numbs')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[]"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q('SELECT * FROM sqlite_master').fetchall()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {
    "uuid": "3f80d448-2ff3-4e07-80ce-d8971f367a2c"
   },
   "outputs": [],
   "source": [
    "con.close()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {
    "uuid": "3f80d448-2ff3-4e07-80ce-d8971f367a2c"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Writing and Reading Numpy Arrays"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {
    "uuid": "4e65636e-de0f-49d1-bd67-b63868fb3a3a"
   },
   "outputs": [],
   "source": [
    "dtimes = np.arange('2019-01-01 10:00:00', '2025-12-31 22:00:00',\n",
    "                  dtype='datetime64[m]')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {
    "uuid": "4e65636e-de0f-49d1-bd67-b63868fb3a3a"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "3681360"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(dtimes)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {
    "uuid": "d5d873f2-4ffa-4fad-a802-9c12a9e30046"
   },
   "outputs": [],
   "source": [
    "dty = np.dtype([('Date', 'datetime64[m]'),\n",
    "                ('No1', 'f'), ('No2', 'f')])  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "uuid": "d5d873f2-4ffa-4fad-a802-9c12a9e30046"
   },
   "outputs": [],
   "source": [
    "data = np.zeros(len(dtimes), dtype=dty)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "metadata": {
    "uuid": "d8cd7ec4-a323-44db-91ba-9a8a9edde1b4"
   },
   "outputs": [],
   "source": [
    "data['Date'] = dtimes  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {
    "uuid": "3f9e6dc3-23c8-46b2-b776-c5f73d22ce04"
   },
   "outputs": [],
   "source": [
    "a = np.random.standard_normal((len(dtimes), 2)).round(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {
    "uuid": "3f9e6dc3-23c8-46b2-b776-c5f73d22ce04"
   },
   "outputs": [],
   "source": [
    "data['No1'] = a[:, 0]  \n",
    "data['No2'] = a[:, 1]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "58901760"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.nbytes  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "metadata": {
    "uuid": "d783e0e3-0238-49f0-b3cf-655012d25ff3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 390 ms, sys: 191 ms, total: 581 ms\n",
      "Wall time: 214 ms\n"
     ]
    }
   ],
   "source": [
    "%time np.save(path + 'array', data)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "metadata": {
    "uuid": "329fb352-9724-4f9b-98e9-3d0d144c9cf9"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  58901888 Dec  1 12:18 /Users/yves/Temp/data/array.npy\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "metadata": {
    "uuid": "b5f60285-80a3-4caa-b528-064b5302464b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.52 ms, sys: 33 ms, total: 34.5 ms\n",
      "Wall time: 32.8 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([('2019-01-01T10:00',  1.5131,  0.6973),\n",
       "       ('2019-01-01T10:01', -1.722 , -0.4815),\n",
       "       ('2019-01-01T10:02',  0.8251,  0.3019), ...,\n",
       "       ('2025-12-31T21:57',  1.372 ,  0.6446),\n",
       "       ('2025-12-31T21:58', -1.2542,  0.1612),\n",
       "       ('2025-12-31T21:59', -1.1997, -1.097 )],\n",
       "      dtype=[('Date', '<M8[m]'), ('No1', '<f4'), ('No2', '<f4')])"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.load(path + 'array.npy')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "metadata": {
    "uuid": "d10836fb-aa11-4fb9-8c2c-24d46f48b46b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 3.12 s, sys: 358 ms, total: 3.47 s\n",
      "Wall time: 2.5 s\n"
     ]
    }
   ],
   "source": [
    "%time data = np.random.standard_normal((10000, 6000)).round(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "480000000"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.nbytes  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "metadata": {
    "uuid": "2b48a768-2abb-46c1-9499-946e4e43f26e"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 69.5 ms, sys: 664 ms, total: 734 ms\n",
      "Wall time: 1.33 s\n"
     ]
    }
   ],
   "source": [
    "%time np.save(path + 'array', data)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "metadata": {
    "uuid": "c0de71b2-0d43-4752-82e4-982cc40fc47a"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  480000128 Dec  1 12:18 /Users/yves/Temp/data/array.npy\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*   "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "metadata": {
    "uuid": "3bedfde2-d212-40e6-a043-379e416fcc08"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.72 ms, sys: 263 ms, total: 265 ms\n",
      "Wall time: 263 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[ 0.3066,  0.5951,  0.5826, ...,  1.6773,  0.4294, -0.2216],\n",
       "       [ 0.8769,  0.7292, -0.9557, ...,  0.5084,  0.9635, -0.4443],\n",
       "       [-1.2202, -2.5509, -0.0575, ..., -1.6128,  0.4662, -1.3645],\n",
       "       ...,\n",
       "       [-0.5598,  0.2393, -2.3716, ...,  1.7669,  0.2462,  1.035 ],\n",
       "       [ 0.273 ,  0.8216, -0.0749, ..., -0.0552, -0.8396,  0.3077],\n",
       "       [-0.6305,  0.8331,  1.3702, ...,  0.3493,  0.1981,  0.2037]])"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.load(path + 'array.npy')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "metadata": {
    "uuid": "b5de422d-014e-4f1f-b80c-4c1333920a57"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## I/O with pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "metadata": {
    "uuid": "e0ba11e0-7bdf-4e1f-b8a2-0566cb5ab7a7"
   },
   "outputs": [],
   "source": [
    "data = np.random.standard_normal((1000000, 5)).round(4)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[ 0.4918,  1.3707,  0.137 ,  0.3981, -1.0059],\n",
       "       [ 0.4516,  1.4445,  0.0555, -0.0397,  0.44  ],\n",
       "       [ 0.1629, -0.8473, -0.8223, -0.4621, -0.5137]])"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data[:3]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### SQL Database"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "metadata": {
    "uuid": "366021ec-1265-4fef-ae96-b280c7f3cd2b"
   },
   "outputs": [],
   "source": [
    "filename = path + 'numbers'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "metadata": {
    "uuid": "41eac653-cff4-4bab-b27a-18982f4b6159"
   },
   "outputs": [],
   "source": [
    "con = sq3.Connection(filename + '.db')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {
    "uuid": "296ae8af-8da3-4f6d-98bd-2816374d8526"
   },
   "outputs": [],
   "source": [
    "query = 'CREATE TABLE numbers (No1 real, No2 real,\\\n",
    "        No3 real, No4 real, No5 real)'  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "metadata": {},
   "outputs": [],
   "source": [
    "q = con.execute\n",
    "qm = con.executemany"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "metadata": {
    "uuid": "8c1f7339-7383-4716-b1dc-d18bdd651bfe"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<sqlite3.Cursor at 0x10b373570>"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "q(query)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "metadata": {
    "uuid": "c9bd1eba-510d-4b60-89bf-88dd90e96b4f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 6.91 s, sys: 143 ms, total: 7.06 s\n",
      "Wall time: 6.94 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "qm('INSERT INTO numbers VALUES (?, ?, ?, ?, ?)', data)  \n",
    "con.commit()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "metadata": {
    "uuid": "f2331de4-877b-48fe-aac1-fd823af82b24"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  52633600 Dec  1 12:18 /Users/yves/Temp/data/numbers.db\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 97,
   "metadata": {
    "uuid": "36c34da0-f8d8-4bf5-8241-45266a118747"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[(0.4918, 1.3707, 0.137, 0.3981, -1.0059), (0.4516, 1.4445, 0.0555, -0.0397, 0.44), (0.1629, -0.8473, -0.8223, -0.4621, -0.5137)]\n",
      "CPU times: user 1.4 s, sys: 103 ms, total: 1.5 s\n",
      "Wall time: 1.51 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "temp = q('SELECT * FROM numbers').fetchall()  \n",
    "print(temp[:3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 98,
   "metadata": {
    "uuid": "1ed09d3f-24a5-4936-b64c-a205182b5910"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 566 ms, sys: 66.6 ms, total: 632 ms\n",
      "Wall time: 606 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "query = 'SELECT * FROM numbers WHERE No1 > 0 AND No2 < 0'\n",
    "res = np.array(q(query).fetchall()).round(3)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 99,
   "metadata": {
    "uuid": "d3100151-5563-48ca-8ba6-cc9a623d03cc"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x11da44be0>]"
      ]
     },
     "execution_count": 99,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "res = res[::100]  \n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(res[:, 0], res[:, 1], 'ro')  \n",
    "# plt.savefig('../../images/ch09/io_01.png');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### From SQL to pandas"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {
    "uuid": "d446ef85-a7d0-4aba-8b93-d2d60a1aee9b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.96 s, sys: 150 ms, total: 2.11 s\n",
      "Wall time: 1.87 s\n"
     ]
    }
   ],
   "source": [
    "%time data = pd.read_sql('SELECT * FROM numbers', con)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 101,
   "metadata": {
    "uuid": "052c40c0-6bb7-4084-9e84-da330dca43db"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>No1</th>\n",
       "      <th>No2</th>\n",
       "      <th>No3</th>\n",
       "      <th>No4</th>\n",
       "      <th>No5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.4918</td>\n",
       "      <td>1.3707</td>\n",
       "      <td>0.1370</td>\n",
       "      <td>0.3981</td>\n",
       "      <td>-1.0059</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.4516</td>\n",
       "      <td>1.4445</td>\n",
       "      <td>0.0555</td>\n",
       "      <td>-0.0397</td>\n",
       "      <td>0.4400</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.1629</td>\n",
       "      <td>-0.8473</td>\n",
       "      <td>-0.8223</td>\n",
       "      <td>-0.4621</td>\n",
       "      <td>-0.5137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>1.3064</td>\n",
       "      <td>0.9125</td>\n",
       "      <td>0.5142</td>\n",
       "      <td>-0.7868</td>\n",
       "      <td>-0.3398</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.1148</td>\n",
       "      <td>-1.5215</td>\n",
       "      <td>-0.7045</td>\n",
       "      <td>-1.0042</td>\n",
       "      <td>-0.0600</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      No1     No2     No3     No4     No5\n",
       "0  0.4918  1.3707  0.1370  0.3981 -1.0059\n",
       "1  0.4516  1.4445  0.0555 -0.0397  0.4400\n",
       "2  0.1629 -0.8473 -0.8223 -0.4621 -0.5137\n",
       "3  1.3064  0.9125  0.5142 -0.7868 -0.3398\n",
       "4 -0.1148 -1.5215 -0.7045 -1.0042 -0.0600"
      ]
     },
     "execution_count": 101,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 102,
   "metadata": {
    "uuid": "a5f5d023-dfbb-4b54-a622-38a48b3d00a1"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 98 ms, sys: 8.85 ms, total: 107 ms\n",
      "Wall time: 26.1 ms\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>No1</th>\n",
       "      <th>No2</th>\n",
       "      <th>No3</th>\n",
       "      <th>No4</th>\n",
       "      <th>No5</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.1629</td>\n",
       "      <td>-0.8473</td>\n",
       "      <td>-0.8223</td>\n",
       "      <td>-0.4621</td>\n",
       "      <td>-0.5137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.1893</td>\n",
       "      <td>-0.0207</td>\n",
       "      <td>-0.2104</td>\n",
       "      <td>0.9419</td>\n",
       "      <td>0.2551</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>1.4784</td>\n",
       "      <td>-0.3333</td>\n",
       "      <td>-0.7050</td>\n",
       "      <td>0.3586</td>\n",
       "      <td>-0.3937</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>0.8092</td>\n",
       "      <td>-0.9899</td>\n",
       "      <td>1.0364</td>\n",
       "      <td>-1.0453</td>\n",
       "      <td>0.0579</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>0.9065</td>\n",
       "      <td>-0.7757</td>\n",
       "      <td>-0.9267</td>\n",
       "      <td>0.7797</td>\n",
       "      <td>0.0863</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       No1     No2     No3     No4     No5\n",
       "2   0.1629 -0.8473 -0.8223 -0.4621 -0.5137\n",
       "5   0.1893 -0.0207 -0.2104  0.9419  0.2551\n",
       "8   1.4784 -0.3333 -0.7050  0.3586 -0.3937\n",
       "10  0.8092 -0.9899  1.0364 -1.0453  0.0579\n",
       "11  0.9065 -0.7757 -0.9267  0.7797  0.0863"
      ]
     },
     "execution_count": 102,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time data[(data['No1'] > 0) & (data['No2'] < 0)].head()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 103,
   "metadata": {
    "uuid": "2aa6d1e0-e157-4d5b-8a43-3fc696679511"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 161 ms, sys: 25.7 ms, total: 187 ms\n",
      "Wall time: 42.9 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "q = '(No1 < -0.5 | No1 > 0.5) & (No2 < -1 | No2 > 1)'  \n",
    "res = data[['No1', 'No2']].query(q)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 104,
   "metadata": {
    "uuid": "d46cc119-c34b-4d3f-becd-f625c1a70f78"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(res['No1'], res['No2'], 'ro');\n",
    "# plt.savefig('../../images/ch09/io_02.png');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 105,
   "metadata": {
    "uuid": "7017f5f6-2a19-4d1e-b256-4936081ab91a"
   },
   "outputs": [],
   "source": [
    "h5s = pd.HDFStore(filename + '.h5s', 'w')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 106,
   "metadata": {
    "uuid": "eec6ad05-c74e-49e9-bd35-965d56ba3bc9"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 42.4 ms, sys: 45.6 ms, total: 88.1 ms\n",
      "Wall time: 155 ms\n"
     ]
    }
   ],
   "source": [
    "%time h5s['data'] = data  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 107,
   "metadata": {
    "uuid": "69057178-872b-4080-8d36-3ea1d9b56b18"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<class 'pandas.io.pytables.HDFStore'>\n",
       "File path: /Users/yves/Temp/data/numbers.h5s"
      ]
     },
     "execution_count": 107,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "h5s  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {
    "uuid": "179c2cf9-9505-4e1a-b6fc-f71429bbfd6d"
   },
   "outputs": [],
   "source": [
    "h5s.close()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 109,
   "metadata": {
    "uuid": "f13d24ff-afa4-453c-b098-ce986f0ec341"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 8.96 ms, sys: 13.9 ms, total: 22.9 ms\n",
      "Wall time: 21.8 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "h5s = pd.HDFStore(filename + '.h5s', 'r')  \n",
    "data_ = h5s['data']  \n",
    "h5s.close()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 110,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "False"
      ]
     },
     "execution_count": 110,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data_ is data  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 111,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "No1    True\n",
       "No2    True\n",
       "No3    True\n",
       "No4    True\n",
       "No5    True\n",
       "dtype: bool"
      ]
     },
     "execution_count": 111,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "(data_ == data).all()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 112,
   "metadata": {
    "uuid": "96b612da-9d26-498d-9b79-716d0bc9c5fa"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 112,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "np.allclose(data_, data)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 113,
   "metadata": {
    "uuid": "8d68e5ac-7434-4e1c-b5b8-0c6f03171826"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  52633600 Dec  1 12:18 /Users/yves/Temp/data/numbers.db\r\n",
      "-rw-r--r--  1 yves  staff  48007240 Dec  1 12:18 /Users/yves/Temp/data/numbers.h5s\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data as CSV File"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 114,
   "metadata": {
    "uuid": "7925d095-cbde-430b-b2ef-f0f143df15b8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 5.72 s, sys: 107 ms, total: 5.83 s\n",
      "Wall time: 5.75 s\n"
     ]
    }
   ],
   "source": [
    "%time data.to_csv(filename + '.csv')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 115,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total 284096\r\n",
      "-rw-r--r--  1 yves  staff  43834157 Dec  1 12:18 numbers.csv\r\n",
      "-rw-r--r--  1 yves  staff  52633600 Dec  1 12:18 numbers.db\r\n",
      "-rw-r--r--  1 yves  staff  48007240 Dec  1 12:18 numbers.h5s\r\n"
     ]
    }
   ],
   "source": [
    "ll $path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 116,
   "metadata": {
    "uuid": "074e493b-576f-4a3d-a9b5-cafd2045c75c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 819 ms, sys: 103 ms, total: 922 ms\n",
      "Wall time: 865 ms\n"
     ]
    }
   ],
   "source": [
    "%time df = pd.read_csv(filename + '.csv')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 117,
   "metadata": {
    "uuid": "074e493b-576f-4a3d-a9b5-cafd2045c75c"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 4 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[['No1', 'No2', 'No3', 'No4']].hist(bins=20, figsize=(10, 6));\n",
    "# plt.savefig('../../images/ch09/io_03.png');"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data as Excel File"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {
    "uuid": "735350dc-e6af-4ee7-8f27-2505b3454682"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 21.8 s, sys: 396 ms, total: 22.2 s\n",
      "Wall time: 22.3 s\n"
     ]
    }
   ],
   "source": [
    "%time data[:100000].to_excel(filename + '.xlsx')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 119,
   "metadata": {
    "uuid": "0d2365b9-28b2-4bb5-8515-4c9ca628ec00"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 4.28 s, sys: 49 ms, total: 4.33 s\n",
      "Wall time: 4.34 s\n"
     ]
    }
   ],
   "source": [
    "%time df = pd.read_excel(filename + '.xlsx', 'Sheet1')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 120,
   "metadata": {
    "uuid": "0d2365b9-28b2-4bb5-8515-4c9ca628ec00"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df.cumsum().plot(figsize=(10, 6));\n",
    "# plt.savefig('../../images/ch09/io_04.png');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 121,
   "metadata": {
    "uuid": "0f0f0a19-994c-43ff-940f-9cd05b94a0cd"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  43834157 Dec  1 12:18 /Users/yves/Temp/data/numbers.csv\r\n",
      "-rw-r--r--  1 yves  staff  52633600 Dec  1 12:18 /Users/yves/Temp/data/numbers.db\r\n",
      "-rw-r--r--  1 yves  staff  48007240 Dec  1 12:18 /Users/yves/Temp/data/numbers.h5s\r\n",
      "-rw-r--r--  1 yves  staff   4032725 Dec  1 12:19 /Users/yves/Temp/data/numbers.xlsx\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {
    "uuid": "638a2e35-0a12-41be-9743-c7f4f4afcb23"
   },
   "outputs": [],
   "source": [
    "rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Fast I/O with PyTables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 123,
   "metadata": {
    "uuid": "b671c317-5247-4a6b-94c9-0ee2850decba"
   },
   "outputs": [],
   "source": [
    "import tables as tb  \n",
    "import datetime as dt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Working with Tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 124,
   "metadata": {
    "uuid": "4f7391d1-2f86-4913-af4d-2c603c970605"
   },
   "outputs": [],
   "source": [
    "filename = path + 'pytab.h5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 125,
   "metadata": {
    "uuid": "4f7391d1-2f86-4913-af4d-2c603c970605"
   },
   "outputs": [],
   "source": [
    "h5 = tb.open_file(filename, 'w')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 126,
   "metadata": {
    "uuid": "60a374d2-b78c-4473-b17a-69982fd27a4c"
   },
   "outputs": [],
   "source": [
    "row_des = {\n",
    "    'Date': tb.StringCol(26, pos=1),  \n",
    "    'No1': tb.IntCol(pos=2),  \n",
    "    'No2': tb.IntCol(pos=3),  \n",
    "    'No3': tb.Float64Col(pos=4),  \n",
    "    'No4': tb.Float64Col(pos=5)  \n",
    "    }"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 127,
   "metadata": {
    "uuid": "28c4dabe-bfbe-4a90-bd60-072c2e8f1aa1"
   },
   "outputs": [],
   "source": [
    "rows = 2000000"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 128,
   "metadata": {
    "uuid": "027696b8-2e1b-489f-8cb6-c24c6c3702ee"
   },
   "outputs": [],
   "source": [
    "filters = tb.Filters(complevel=0)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 129,
   "metadata": {
    "uuid": "027696b8-2e1b-489f-8cb6-c24c6c3702ee"
   },
   "outputs": [],
   "source": [
    "tab = h5.create_table('/', 'ints_floats',  \n",
    "                      row_des,  \n",
    "                      title='Integers and Floats',  \n",
    "                      expectedrows=rows,  \n",
    "                      filters=filters)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 130,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tables.table.Table"
      ]
     },
     "execution_count": 130,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(tab)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 131,
   "metadata": {
    "uuid": "71ce6940-bde4-437f-9daa-f2f577f3cd7e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "/ints_floats (Table(0,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt=b'', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 131,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 132,
   "metadata": {
    "uuid": "3830afd0-0a7b-439a-81b2-c81194deb7a5"
   },
   "outputs": [],
   "source": [
    "pointer = tab.row  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 133,
   "metadata": {
    "uuid": "493096c9-7a8e-4342-b7c3-9390cbc03c6b"
   },
   "outputs": [],
   "source": [
    "ran_int = np.random.randint(0, 10000, size=(rows, 2))  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 134,
   "metadata": {
    "uuid": "493096c9-7a8e-4342-b7c3-9390cbc03c6b"
   },
   "outputs": [],
   "source": [
    "ran_flo = np.random.standard_normal((rows, 2)).round(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 135,
   "metadata": {
    "uuid": "a15c64b5-17f2-4e11-b051-a6d68ba4bf7f"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 7.74 s, sys: 72.7 ms, total: 7.82 s\n",
      "Wall time: 7.35 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for i in range(rows):\n",
    "    pointer['Date'] = dt.datetime.now()  \n",
    "    pointer['No1'] = ran_int[i, 0]  \n",
    "    pointer['No2'] = ran_int[i, 1]  \n",
    "    pointer['No3'] = ran_flo[i, 0]  \n",
    "    pointer['No4'] = ran_flo[i, 1]  \n",
    "    pointer.append()  \n",
    "tab.flush()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 136,
   "metadata": {
    "uuid": "0d0739a9-79a3-410a-abf0-20f6b8cef8c5"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "/ints_floats (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt=b'', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 136,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 137,
   "metadata": {
    "uuid": "cff18aaa-9959-41a9-8f05-8ba42192368c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  100156248 Dec  1 12:19 /Users/yves/Temp/data/pytab.h5\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 138,
   "metadata": {
    "uuid": "2b81e6f0-86a1-429f-8d7c-ac4bbdcdd616"
   },
   "outputs": [],
   "source": [
    "dty = np.dtype([('Date', 'S26'), ('No1', '<i4'), ('No2', '<i4'),\n",
    "                                 ('No3', '<f8'), ('No4', '<f8')])  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 139,
   "metadata": {
    "uuid": "2b81e6f0-86a1-429f-8d7c-ac4bbdcdd616"
   },
   "outputs": [],
   "source": [
    "sarray = np.zeros(len(ran_int), dtype=dty)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 140,
   "metadata": {
    "uuid": "15ef6c1c-c760-4bdd-9e1b-fe46c108abf8"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([(b'', 0, 0, 0., 0.), (b'', 0, 0, 0., 0.), (b'', 0, 0, 0., 0.),\n",
       "       (b'', 0, 0, 0., 0.)],\n",
       "      dtype=[('Date', 'S26'), ('No1', '<i4'), ('No2', '<i4'), ('No3', '<f8'), ('No4', '<f8')])"
      ]
     },
     "execution_count": 140,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "sarray[:4]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 141,
   "metadata": {
    "uuid": "87071ae4-4ff2-402e-8746-037fee04b07c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 118 ms, sys: 24.5 ms, total: 142 ms\n",
      "Wall time: 141 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "sarray['Date'] = dt.datetime.now()  \n",
    "sarray['No1'] = ran_int[:, 0]  \n",
    "sarray['No2'] = ran_int[:, 1]  \n",
    "sarray['No3'] = ran_flo[:, 0]  \n",
    "sarray['No4'] = ran_flo[:, 1]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 142,
   "metadata": {
    "scrolled": true,
    "uuid": "992c3894-7eb7-4699-9e6b-2a6fb4e6eabf"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 29.4 ms, sys: 26.2 ms, total: 55.6 ms\n",
      "Wall time: 55.3 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "/ints_floats_from_array (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt=b'', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 142,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%%time\n",
    "h5.create_table('/', 'ints_floats_from_array', sarray,\n",
    "                      title='Integers and Floats',\n",
    "                      expectedrows=rows, filters=filters)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 143,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tables.file.File"
      ]
     },
     "execution_count": 143,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(h5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 144,
   "metadata": {
    "uuid": "a7616365-19cf-4cbb-a6a0-01c3b88cb457"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "File(filename=/Users/yves/Temp/data/pytab.h5, title='', mode='w', root_uep='/', filters=Filters(complevel=0, shuffle=False, bitshuffle=False, fletcher32=False, least_significant_digit=None))\n",
       "/ (RootGroup) ''\n",
       "/ints_floats (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt=b'', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)\n",
       "/ints_floats_from_array (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt=b'', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 144,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "h5  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 145,
   "metadata": {
    "uuid": "f498bb1c-ef46-4ee9-956d-21f292687323"
   },
   "outputs": [],
   "source": [
    "h5.remove_node('/', 'ints_floats_from_array')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 146,
   "metadata": {
    "uuid": "e99634bc-effd-43ee-ac2e-4b66b925433b"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([(b'2018-12-01 12:19:27.183068', 8576, 5991, -0.0528, 0.2468),\n",
       "       (b'2018-12-01 12:19:27.183138', 2990, 9310, -0.0261, 0.3932),\n",
       "       (b'2018-12-01 12:19:27.183145', 4400, 4823,  0.9133, 0.2579)],\n",
       "      dtype=[('Date', 'S26'), ('No1', '<i4'), ('No2', '<i4'), ('No3', '<f8'), ('No4', '<f8')])"
      ]
     },
     "execution_count": 146,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab[:3]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 147,
   "metadata": {
    "uuid": "d84a41bd-36d3-4e11-8a4d-44440551a493"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 0.2468,  0.3932,  0.2579, -0.5582])"
      ]
     },
     "execution_count": 147,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab[:4]['No4']  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 148,
   "metadata": {
    "uuid": "f7616601-4e98-42cc-9935-c855877d178c"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 52.6 ms, sys: 52.7 ms, total: 105 ms\n",
      "Wall time: 104 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "88.8542999999997"
      ]
     },
     "execution_count": 148,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.sum(tab[:]['No3'])  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 149,
   "metadata": {
    "uuid": "9061ed32-44db-4c13-a44a-92b313b4af40"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 70.2 ms, sys: 29.6 ms, total: 99.8 ms\n",
      "Wall time: 98.4 ms\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "133349920.3689251"
      ]
     },
     "execution_count": 149,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time np.sum(np.sqrt(tab[:]['No1']))  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "metadata": {
    "uuid": "558b4627-15f8-4a8f-8d5a-fc7213ee074e"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 125 ms, sys: 26.1 ms, total: 151 ms\n",
      "Wall time: 150 ms\n"
     ]
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAmkAAAFmCAYAAAA2zw2aAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAGZNJREFUeJzt3X2MneV55/Gv8ZCAk5lm2IxLdlFBAefaEDngZaPIIqGxSYOoqSqSVRVVTlmZrDYp24UQk1gEKInADMXIIdl0gwTWpkVqkjZSQ7Go2cSo7CKHt2wpS8jFSygsrIiniakNJix4Z/84z6QnszM+E8+Zc6458/38M3Ou576fuZ/bR+Pf3M/LWTY5OYkkSZJqOarfA5AkSdL/z5AmSZJUkCFNkiSpIEOaJElSQYY0SZKkggxpkiRJBQ11ahARRwF/BdwHvAE4GdgEHAuMAz8CVgGXZ+aPmz6XASPAKHBXZt7e1E8HLgKeBlYCmzPz9Yg4BtgGPN/sazwzH2/6bATWAIeApzLz5u4cuiRJUl1zXUnbk5lfyMwrgBXAh4GtwHcycxz4S1ohi4h4L7AuM68EPgXcGBFviYhlwG3AlZm5lVbouqDZ/yXAs5l5HbAduLXZ1wnAZlph7jPAxyNi1byPWpIkqbiOK2mZ+X+BawAiYgg4AUhaq2jXNs3uBb7WfH8esKfp+1pEPAacBTwKHJuZL7T12UgrkG0ALm/6PBIRp0XECHAO8FBmTj1xdw9wLvDE4cY8MXGg4xN6R0dXsG/fwU7N1EXOee85573nnPeH8957znn3jI0NL5up3jGkTYmIc2itjN2RmQ9GxErgQLN5PzDahLiVwGNtXfc3tYm29u11mq8zbZutflijoysYGlre8ZjGxoY7tlF3Oee955z3nnPeH8577znnC2vOIS0zdwG7IuJPIuL3gb3AMPAirevP9jXXl03Vp4w0bWerc5hte4FTptWf7DTWuST7sbFhJiYOdGyn7nHOe8857z3nvD+c995zzrtntrDb8Zq0iDg1Ija0lZ4G3g7sBNY2tTOb1wB3TNWblbVTgXto3WDwSkQcP0OfnW19VgMPZ+Z+YBdwRnM9G02bOzuNWZIkabGby0raq8CFEbEGOBp4J/Afgf8DXB8R76B1x+dmgMy8LyLujoittO7uvDQzX4Sf36l5bUQ8Ayznn65juwnYFhFX0Fo5u7DZ13MRsQ3YHhGHgFsy87DXo0mSJA2CZZOTHa+xX3TmcuOAy7S955z3nnPee855fzjvveecd89sNw74MFtJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkgub8AeuStNRtGt89r/47tqzv0kgkLQWupEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkgob6PQBJWio2je+e9z52bFnfhZFIWgxcSZMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIK8jlpkpaEbjyjTJJ6yZU0SZKkggxpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSpoqFODiDgZuAb4PnAC8JPM/EJEXA18oK3ptZn5X5s+lwEjwChwV2be3tRPBy4CngZWApsz8/WIOAbYBjwPrALGM/Pxps9GYA1wCHgqM2+e70FLkiRV1zGkAccBX8/MbwNExA8iYidAZn5geuOIeC+wLjN/MyKOBn4QEfcA/wjcBnwwM1+IiBuBC4BbgUuAZzPzjyJidVN7f0ScAGwG1mTmZEQ8EBG7M/OJ+R64JElSZR1DWmY+MK10FPAyQER8DngVWA58OTMPAucBe5q+r0XEY8BZwKPAsZn5QrOfe4GNtALZBuDyps8jEXFaRIwA5wAPZeZk02cPcC5gSJMkSQNtLitpPxcR5wO7MvOHEfHnwN9n5ssR8fvAl4ELaZ3GfKyt2/6mNgEcmKFO83WmbbPVD2t0dAVDQ8s7Hs/Y2HDHNuou57z3nPPB4r/n7Jyb3nPOF9acQ1pErAPW0To1SWY+2rZ5N3BZ8/1eoP1fbaSpzVbv1OeUafUnO411376DnZowNjbMxMSBju3UPc557znng8d/z5n5Xu8957x7Zgu7c7q7MyI20Dr1eDFwfESsjYgb2pqs4p/C0x3A2qbfEHAqcA/wI+CViDi+aXcmsLP5fmdbn9XAw5m5H9gFnBERy5p2a4E75zJmSZKkxWwud3eeAXwDeBC4G3gT8BXg9Yi4idZq12pad22SmfdFxN0RsZXW3Z2XZuaLzb42AtdGxDO0rmP7WvNjbgK2RcQVtFbOLmz29VxEbAO2R8Qh4BZvGpAkSUvBXG4ceAh48y+z08y8YZb639IEsGn1V2hC3gzbbqN1V6gkSdKS4cNsJUmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJU0FC/ByBJmrtN47vnvY8dW9Z3YSSSFporaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQV5Gd3SiqvG59XKUmLjStpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklTQUKcGEXEycA3wfeAE4CeZ+YWIOA4YB34ErAIuz8wfN30uA0aAUeCuzLy9qZ8OXAQ8DawENmfm6xFxDLANeL7Z13hmPt702QisAQ4BT2Xmzd06eEmSpKrmspJ2HPD1zLwhMy8GPhoRZwBbge9k5jjwl7RCFhHxXmBdZl4JfAq4MSLeEhHLgNuAKzNzK63QdUHzMy4Bns3M64DtwK3Nvk4ANtMKc58BPh4Rq7py5JIkSYV1DGmZ+UBmfntan5eBDcCepnZv8xrgvKl6Zr4GPAacBbwdODYzX5ihz4a2Po8Ap0XECHAO8FBmTjbt9gDn/pLHKEmStOh0PN3ZLiLOB3Zl5g8jYiVwoNm0HxiNiCFapzEfa+u2v6lNtLVvr9N8nWnbbPXDGh1dwdDQ8o7HMzY23LGNuss57z3nXNMN6ntiUI+rMud8Yc05pEXEOmAdrVOTAHuBYeBFWtef7WuuL5uqTxlp2s5W5zDb9gKnTKs/2Wms+/Yd7Hg8Y2PDTEwc6NhO3eOc955zrpkM4nvC93rvOefdM1vYndPdnRGxgdapx4uB4yNiLbATWNs0ObN5DXDHVL1ZWTsVuIfWDQavRMTxM/TZ2dZnNfBwZu4HdgFnNNez0bS5cy5jliRJWszmcnfnGcA3gAeBu4E3AV8BLgeuj4h3ACfTusCfzLwvIu6OiK207u68NDNfbPa1Ebg2Ip4BlgNfa37MTcC2iLiC1srZhc2+nouIbcD2iDgE3JKZT3Tn0CVJkupaNjk52bnVIjMxcaDjQblM23vOee8NypxvGt/d7yEMlB1b1vd7CF03KO/1xcQ5756xseFlM9V9mK0kSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkggxpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQUP9HoAkqbc2je+e9z52bFnfhZFIOhxX0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQV5MdCSVpQ3fgIIklailxJkyRJKqjjSlpEHA9cA5yWme9pav8W+ATws6bZrZn5p822jcAa4BDwVGbe3NRPAq4EngROAj6dmS9FxFHAVuAl4MRmX99r+nwQ+DCwF5jMzM/P/5AlSZLqm8vpzvcB3wZOn1b/aGb+fXshIk4ANgNrMnMyIh6IiN2Z+QTwVeCqzLw/Iv4A+Cyt0PY7wEhmbomI44DvRcQ7gTc2fd6Vma9GxLci4uzM/O48jleSJGlR6Hi6MzP/Ajgww6b/EBGbI+KqJlwBnAM8lJmTzes9wLkRcTSwDnigqd8LbGi+39C0IzN/Smt17l3AWuCZzHx1hj6SJEkD7UivSfsb4PrM3AY8CPx5U1/JLwa6/U3trcArbeFtqn64PrPVJUmSBt4R3d2ZmU+3vdwN3B4Ry2ldO3ZK27YRWteg/QNwbEQsa4LaSNOW5uvwtD57gclZ6h2Njq5gaGh5x3ZjY8Md26i7nPPec861ECq+ryqOadA55wvriEJaRFwHXJmZrwOrgKcz81BE7AL+oC2MrQW+nJmvRcTdwHuA+4EzgZ3N7nYCZwF/2pw2PQZ4lNY1aSdGxBubU55nAn88l/Ht23ewY5uxsWEmJmY6i6uF4pz3nnOuhVLtfeV7vfec8+6ZLezO5e7OXwc+BrwtIq4AbgReAP5zRDwNrG62k5nPRcQ2YHtEHAJuaW4agNbdoFdFxIeAXwMuberfBNZExB829d/LzEPAwYj4JPCliJgA/s6bBiRJ0lKxbHJysnOrRWZi4kDHg/IvgN5zznuvwpz7MNvBtGPL+n4P4RdUeK8vNc5594yNDS+bqe7DbCVJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkggxpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkggxpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKmio3wOQJC0+m8Z3z3sfO7as78JIpMHlSpokSVJBhjRJkqSCDGmSJEkFdbwmLSKOB64BTsvM9zS1Y4BtwPPAKmA8Mx9vtm0E1gCHgKcy8+amfhJwJfAkcBLw6cx8KSKOArYCLwEnArdm5veaPh8EPgzsBSYz8/PdOWxJkqTa5rKS9j7g28CyttolwLOZeR2wHbgVICJOADYDmzPzM8DHI2JV0+erwM1Nn/8JfLap/w4wkpnXNLU/iYjlEbGi6fOpzLwaeHdEnH3khypJkrR4dAxpmfkXwIFp5Q3Anmb7I8BpETECnAM8lJmTTbs9wLkRcTSwDnigqd/b7GP6vn4K/Ax4F7AWeCYzX52hjyRJ0kA70kdwrOQXg9v+pjZb/a3AK23hbap+uH2NzVLvaHR0BUNDyzu2Gxsbnsvu1EXOee8556qq2+9N3+u955wvrCMNaXuB9n+Zkaa2FzhlWv1J4B+AYyNiWRPUptofbl+Ts9Q72rfvYMc2Y2PDTExMXyDUQnLOe885V2XdfG/6Xu8957x7Zgu7R3p3505apyOJiNXAw5m5H9gFnBERU9evrQXuzMzXgLuB9zT1M5t9TN/XccAxwKO0ToGeGBFvnKGPJEnSQJvL3Z2/DnwMeFtEXAHcCNwEbGtenwJcCJCZz0XENmB7RBwCbsnMJ5pdfQK4KiI+BPwacGlT/yawJiL+sKn/XmYeAg5GxCeBL0XEBPB3mfnd7hy2pLnoxlPlJUlHZtnk5GTnVovMxMSBjgflMm3vOee9N985N6RpIXXzY6H8/dJ7znn3jI0NL5up7sNsJUmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkggxpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBQ/0egCRpado0vnve+9ixZX0XRiLV5EqaJElSQYY0SZKkggxpkiRJBRnSJEmSCjKkSZIkFWRIkyRJKshHcEgDqhuPN5Ak9c+8Q1pEfA/4WfPyUGaeHRHHAePAj4BVwOWZ+eOm/WXACDAK3JWZtzf104GLgKeBlcDmzHw9Io4BtgHPN/saz8zH5ztuSZKkyrqxkvbXmXn1tNpW4DuZ+c2I+C1aIetjEfFeYF1m/mZEHA38ICLuAf4RuA34YGa+EBE3AhcAtwKXAM9m5h9FxOqm9v4ujFuSJKmsblyTtjoiPhsRV0fEhqa2AdjTfH9v8xrgvKl6Zr4GPAacBbwdODYzX5ihz4a2Po8Ap0XESBfGLUmSVFY3VtKuz8z7I2I5cE9EHKB1uvJAs30/MBoRQ039sba++5vaRFv79jrT9tW+bf9sAxodXcHQ0PKOAx8bG+7YRt3lnEvqpvbfKf5+6T3nfGHNO6Rl5v3N10MR8d+AdcBeYBh4kdb1Z/ua68um6lNGmraz1emwbUb79h3sOO6xsWEmJg50bKfucc4lddvU7xR/v/Sec949s4XdeZ3ujIh/GREXtpVWAU8CO4G1Te3M5jXAHVP1ZmXtVOAeWjcYvBIRx8/QZ2dbn9XAw5k56yqaJEnSIJjvStp+4LyI+Oe0Vrj+F/BnwJ3A9RHxDuBkYDNAZt4XEXdHxFZad3dempkvAkTERuDaiHgGWA58rfkZNwHbIuIK4BSgPRRKkiQNpHmFtMz838D5M2z6KfDvZulzwyz1v2WGAJaZr9B6NIckSdKS4ScOSJIkFWRIkyRJKsiQJkmSVJAhTZIkqSBDmiRJUkGGNEmSpIIMaZIkSQUZ0iRJkgoypEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVNNTvAUiSdKQ2je+e9z52bFnfhZFI3edKmiRJUkGGNEmSpIIMaZIkSQV5TZpUUDeus5EkLW6upEmSJBVkSJMkSSrIkCZJklSQIU2SJKkgQ5okSVJBhjRJkqSCDGmSJEkFGdIkSZIKMqRJkiQVZEiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQUP9HoAkSf20aXz3vPexY8v6LoxE+kWupEmSJBXkSprUZd34q1ySJFfSJEmSCjKkSZIkFWRIkyRJKsiQJkmSVJAhTZIkqSDv7pQkaZ581poWgiFNauPjMyRJVXi6U5IkqaBFsZIWER8EPgzsBSYz8/N9HpIkSdKCKh/SImIF8FXgXZn5akR8KyLOzszv9ntsqsVTlZIWM69r03TlQxqwFngmM19tXt8LbAAMaQPEgCVJ82fQGyyLIaStBA60vd7f1GY1Nja8bC47HhsbnsewdCRmm/O/uvG3ezwSSdJ8+f/owloMNw7sBdrfBSNNTZIkaWAthpC2BzgxIt7YvD4T2NnH8UiSJC24ZZOTk/0eQ0cR8RvAvwEmgNe8u1OSJA26RRHSJEmSlprFcLpTkiRpyTGkSZIkFbQYHsGxICLiDcCngZeBU4GfZObn+juqpSMirgAuycy39nssgy4itgMHgZeA02jN+wv9HdVg8tNReisiTgauAb4PnEDr9/gX+juqpSEijgXuA+7KzM39Hs+gWsoraZ8F7s3ML2XmJ4Bv9HtAS0VEfAAY7fc4lpCXM/NzmXkd8D8A/xhZAG2fjvKpzLwaeHdEnN3fUQ2844CvZ+YNmXkx8NGIOKPfg1oirqH1+0QLaMmupAG/CzwbEf8K+GfAl/s8niUhIn4V+CgwDlzQ5+EsCZl5RdvLo2itqKn7/HSUHsvMB6aVjqJ1dkQLKCI+Ruv9/W7gzX0ezkAb6JAWEbuAX51h01XASbROR3yxOUXxTeADvRvd4Oow778NbAZ+paeDGnCHm/PMvL1p8xbgQ8BHejm2JeSX/nQUdU9EnA/syswf9nssgywiTgXemZmXR8S7+z2eQTfQIS0zz5ltW0Tsp3U+HeC/A++PiOWZeagngxtgs817RPxr4DXg39M63XlsRGwBvpWZT/RwiAPncO91gIj4FeCPgU2Z+dPejGrJ8dNR+iQi1gHrgEv6PZYl4HzgZ83v7vcBb4iISzLzi30e10Aa6JDWwXeBtwMJnAg8ZUBbWJn5IPAgQEScBFyYmeN9HdQSEBFvBb4IXJaZz0fERzLzW/0e1wD6+aejNKc8z6QVjLWAImID8H7gYuBtEXFiZu7p87AGVmZeO/V9RBwDvNmAtnCW7MNsI+JfAJ8HngLeCfynzLy/v6NaGiLiFOATwCeB64Dtmel1JAskIr5P6w+yqRW0A5n5W30c0sDy01F6q7lJ4G9o/vgD3gR8JTP/S98GtURExEeAi4A30JrzP+vzkAbSkg1pkiRJlS3lR3BIkiSVZUiTJEkqyJAmSZJUkCFNkiSpIEOaJElSQYY0SZKkggxpkiRJBRnSJEmSCvp/5E2jqntXjxoAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "%%time\n",
    "plt.figure(figsize=(10, 6))\n",
    "plt.hist(tab[:]['No3'], bins=30);  \n",
    "# plt.savefig('../../images/ch09/io_05.png');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [],
   "source": [
    "query = '((No3 < -0.5) | (No3 > 0.5)) & ((No4 < -1) | (No4 > 1))'  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 152,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [],
   "source": [
    "iterator = tab.where(query)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 153,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 171 ms, sys: 50.1 ms, total: 222 ms\n",
      "Wall time: 173 ms\n"
     ]
    }
   ],
   "source": [
    "%time res = [(row['No3'], row['No4']) for row in iterator]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.7694, 1.4866],\n",
       "       [0.9201, 1.3346],\n",
       "       [1.4701, 1.8776]])"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res = np.array(res)  \n",
    "res[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "metadata": {
    "uuid": "705d91ca-dc94-4db1-84d7-164fb5f5f1af"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(10, 6))\n",
    "plt.plot(res.T[0], res.T[1], 'ro');\n",
    "# plt.savefig('../../images/ch09/io_06.png');"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "metadata": {
    "uuid": "a9e8e16c-9af5-48dc-bf5c-39b353f5c09b"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Max              5.224\n",
      "Ave              0.000\n",
      "Min             -5.649\n",
      "Std              1.000\n",
      "CPU times: user 120 ms, sys: 56 ms, total: 176 ms\n",
      "Wall time: 175 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "values = tab[:]['No3']\n",
    "print('Max %18.3f' % values.max())\n",
    "print('Ave %18.3f' % values.mean())\n",
    "print('Min %18.3f' % values.min())\n",
    "print('Std %18.3f' % values.std())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "metadata": {
    "uuid": "6cfb0992-c393-45b0-999b-b242ea9c1ce6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 344 ms, sys: 40.8 ms, total: 385 ms\n",
      "Wall time: 94.3 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "res = [(row['No1'], row['No2']) for row in\n",
    "        tab.where('((No1 > 9800) | (No1 < 200)) \\\n",
    "                & ((No2 > 4500) & (No2 < 5500))')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 158,
   "metadata": {
    "uuid": "6cfb0992-c393-45b0-999b-b242ea9c1ce6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(91, 4870)\n",
      "(9803, 5026)\n",
      "(9846, 4859)\n",
      "(9823, 5069)\n"
     ]
    }
   ],
   "source": [
    "for r in res[:4]:\n",
    "    print(r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "metadata": {
    "uuid": "399c76db-4f79-4264-b25f-50eab32303e0"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 248 ms, sys: 38.9 ms, total: 287 ms\n",
      "Wall time: 70.8 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "res = [(row['No1'], row['No2']) for row in\n",
    "        tab.where('(No1 == 1234) & (No2 > 9776)')]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "metadata": {
    "uuid": "399c76db-4f79-4264-b25f-50eab32303e0"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "(1234, 9841)\n",
      "(1234, 9821)\n",
      "(1234, 9867)\n",
      "(1234, 9987)\n",
      "(1234, 9849)\n",
      "(1234, 9800)\n"
     ]
    }
   ],
   "source": [
    "for r in res:\n",
    "    print(r)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Working with Compressed Tables"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "metadata": {
    "uuid": "4e6ac124-2500-47c5-9478-2eaaba25ea00"
   },
   "outputs": [],
   "source": [
    "filename = path + 'pytabc.h5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "metadata": {
    "uuid": "4e6ac124-2500-47c5-9478-2eaaba25ea00"
   },
   "outputs": [],
   "source": [
    "h5c = tb.open_file(filename, 'w') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "metadata": {
    "uuid": "830338b0-ec10-4f95-8058-62b1858b46b7"
   },
   "outputs": [],
   "source": [
    "filters = tb.Filters(complevel=5,  \n",
    "                     complib='blosc')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 164,
   "metadata": {
    "uuid": "d11f1cdc-c54a-49f3-992d-b76f7cad5a4a"
   },
   "outputs": [],
   "source": [
    "tabc = h5c.create_table('/', 'ints_floats', sarray,\n",
    "                        title='Integers and Floats',\n",
    "                        expectedrows=rows, filters=filters)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [],
   "source": [
    "query = '((No3 < -0.5) | (No3 > 0.5)) & ((No4 < -1) | (No4 > 1))'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [],
   "source": [
    "iteratorc = tabc.where(query)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "metadata": {
    "uuid": "62ea755e-493b-4230-96ad-0ce7a0a33acc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 202 ms, sys: 40.2 ms, total: 242 ms\n",
      "Wall time: 196 ms\n"
     ]
    }
   ],
   "source": [
    "%time res = [(row['No3'], row['No4']) for row in iteratorc]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[0.7694, 1.4866],\n",
       "       [0.9201, 1.3346],\n",
       "       [1.4701, 1.8776]])"
      ]
     },
     "execution_count": 168,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res = np.array(res)\n",
    "res[:3]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "metadata": {
    "uuid": "f4e1df40-c747-49a2-815c-f1cbd33f621d"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 35.9 ms, sys: 45.3 ms, total: 81.2 ms\n",
      "Wall time: 80.3 ms\n"
     ]
    }
   ],
   "source": [
    "%time arr_non = tab.read()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "metadata": {
    "uuid": "f4e1df40-c747-49a2-815c-f1cbd33f621d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "100122200"
      ]
     },
     "execution_count": 170,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tab.size_on_disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "100000000"
      ]
     },
     "execution_count": 171,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr_non.nbytes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 172,
   "metadata": {
    "uuid": "f7428798-5946-49be-88b1-d67d26a41e70"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 69.7 ms, sys: 36.7 ms, total: 106 ms\n",
      "Wall time: 106 ms\n"
     ]
    }
   ],
   "source": [
    "%time arr_com = tabc.read()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 173,
   "metadata": {
    "uuid": "f4e1df40-c747-49a2-815c-f1cbd33f621d"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "41309952"
      ]
     },
     "execution_count": 173,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tabc.size_on_disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 174,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "100000000"
      ]
     },
     "execution_count": 174,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "arr_com.nbytes"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 175,
   "metadata": {
    "uuid": "e21f417f-f123-41b5-b26b-ecebbbaa5c85"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  200312336 Dec  1 12:19 /Users/yves/Temp/data/pytab.h5\r\n",
      "-rw-r--r--  1 yves  staff   41345248 Dec  1 12:19 /Users/yves/Temp/data/pytabc.h5\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 176,
   "metadata": {
    "uuid": "ea7dd80f-44d8-4cd9-a16f-308a302dd460"
   },
   "outputs": [],
   "source": [
    "h5c.close()  "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "uuid": "ee67fc74-5820-4037-b8d9-281c74435160"
   },
   "source": [
    "### Working with Arrays"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 177,
   "metadata": {
    "uuid": "ee67fc74-5820-4037-b8d9-281c74435160"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2.65 ms, sys: 25.6 ms, total: 28.3 ms\n",
      "Wall time: 226 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "arr_int = h5.create_array('/', 'integers', ran_int)  \n",
    "arr_flo = h5.create_array('/', 'floats', ran_flo)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 178,
   "metadata": {
    "uuid": "c91c089b-4727-4928-8069-2f74ab1f2c61"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "File(filename=/Users/yves/Temp/data/pytab.h5, title='', mode='w', root_uep='/', filters=Filters(complevel=0, shuffle=False, bitshuffle=False, fletcher32=False, least_significant_digit=None))\n",
       "/ (RootGroup) ''\n",
       "/floats (Array(2000000, 2)) ''\n",
       "  atom := Float64Atom(shape=(), dflt=0.0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := None\n",
       "/integers (Array(2000000, 2)) ''\n",
       "  atom := Int64Atom(shape=(), dflt=0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := None\n",
       "/ints_floats (Table(2000000,)) 'Integers and Floats'\n",
       "  description := {\n",
       "  \"Date\": StringCol(itemsize=26, shape=(), dflt=b'', pos=0),\n",
       "  \"No1\": Int32Col(shape=(), dflt=0, pos=1),\n",
       "  \"No2\": Int32Col(shape=(), dflt=0, pos=2),\n",
       "  \"No3\": Float64Col(shape=(), dflt=0.0, pos=3),\n",
       "  \"No4\": Float64Col(shape=(), dflt=0.0, pos=4)}\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (2621,)"
      ]
     },
     "execution_count": 178,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "h5  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 179,
   "metadata": {
    "uuid": "5bf3d20c-0dd1-447f-b7ca-34adb0e9a2c6"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "-rw-r--r--  1 yves  staff  262344490 Dec  1 12:19 /Users/yves/Temp/data/pytab.h5\r\n",
      "-rw-r--r--  1 yves  staff   41345248 Dec  1 12:19 /Users/yves/Temp/data/pytabc.h5\r\n"
     ]
    }
   ],
   "source": [
    "ll $path*"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 180,
   "metadata": {
    "uuid": "3dfffbc8-ab8e-4c6e-9e18-316d220e51a0"
   },
   "outputs": [],
   "source": [
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 181,
   "metadata": {
    "uuid": "2a157cb2-dcc1-44fe-b4da-658bbe2b6ebb"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Out-of-Memory Computations"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 182,
   "metadata": {
    "uuid": "e241b3b2-bfe1-45b4-9e85-0b39586ca42a"
   },
   "outputs": [],
   "source": [
    "filename = path + 'earray.h5'"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 183,
   "metadata": {
    "uuid": "e241b3b2-bfe1-45b4-9e85-0b39586ca42a"
   },
   "outputs": [],
   "source": [
    "h5 = tb.open_file(filename, 'w') "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 184,
   "metadata": {
    "uuid": "dd0e24b0-d0cc-4cb0-90e0-7c6445dcb1d2"
   },
   "outputs": [],
   "source": [
    "n = 500  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 185,
   "metadata": {
    "uuid": "dd0e24b0-d0cc-4cb0-90e0-7c6445dcb1d2"
   },
   "outputs": [],
   "source": [
    "ear = h5.create_earray('/', 'ear',  \n",
    "                      atom=tb.Float64Atom(),  \n",
    "                      shape=(0, n))  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 186,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tables.earray.EArray"
      ]
     },
     "execution_count": 186,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(ear)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 187,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[-1.25983231,  1.11420699,  0.1667485 ,  0.7345676 ],\n",
       "       [-0.13785424,  1.22232417,  1.36303097,  0.13521042],\n",
       "       [ 1.45487119, -1.47784078,  0.15027672,  0.86755989],\n",
       "       [-0.63519366,  0.1516327 , -0.64939447, -0.45010975]])"
      ]
     },
     "execution_count": 187,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rand = np.random.standard_normal((n, n))  \n",
    "rand[:4, :4]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 188,
   "metadata": {
    "uuid": "4dabef84-39ca-4dd4-a8ab-edc65d340965"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 614 ms, sys: 752 ms, total: 1.37 s\n",
      "Wall time: 2.93 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for _ in range(750):\n",
    "    ear.append(rand)  \n",
    "ear.flush()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 189,
   "metadata": {
    "uuid": "4dd0218f-b9ca-4ee5-8a1f-af071e346c55"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "/ear (EArray(375000, 500)) ''\n",
       "  atom := Float64Atom(shape=(), dflt=0.0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (16, 500)"
      ]
     },
     "execution_count": 189,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ear"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 190,
   "metadata": {
    "uuid": "58694407-5d44-400d-99a1-252ea1595514"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1500032000"
      ]
     },
     "execution_count": 190,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ear.size_on_disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 191,
   "metadata": {
    "uuid": "f29bef2e-37fb-4f47-83fd-ef09041f2f77"
   },
   "outputs": [],
   "source": [
    "out = h5.create_earray('/', 'out',\n",
    "                      atom=tb.Float64Atom(),\n",
    "                      shape=(0, n))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 192,
   "metadata": {
    "uuid": "f29bef2e-37fb-4f47-83fd-ef09041f2f77"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0"
      ]
     },
     "execution_count": 192,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out.size_on_disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 193,
   "metadata": {
    "uuid": "aedc7c36-5839-4df5-8391-f0620b2c1381"
   },
   "outputs": [],
   "source": [
    "expr = tb.Expr('3 * sin(ear) + sqrt(abs(ear))')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 194,
   "metadata": {
    "uuid": "aedc7c36-5839-4df5-8391-f0620b2c1381"
   },
   "outputs": [],
   "source": [
    "expr.set_output(out, append_mode=True)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 195,
   "metadata": {
    "uuid": "79542d3f-60fe-4303-abb8-2a21ce9512f2"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2.73 s, sys: 893 ms, total: 3.62 s\n",
      "Wall time: 2.04 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "/out (EArray(375000, 500)) ''\n",
       "  atom := Float64Atom(shape=(), dflt=0.0)\n",
       "  maindim := 0\n",
       "  flavor := 'numpy'\n",
       "  byteorder := 'little'\n",
       "  chunkshape := (16, 500)"
      ]
     },
     "execution_count": 195,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time expr.eval()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 196,
   "metadata": {
    "uuid": "79542d3f-60fe-4303-abb8-2a21ce9512f2"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1500032000"
      ]
     },
     "execution_count": 196,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out.size_on_disk"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 197,
   "metadata": {
    "uuid": "19d61e69-3488-4556-8d2b-cc06edb9c39e"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1.73369462,  3.74824436,  0.90627898,  2.86786818,  1.75424957,\n",
       "       -0.91108973, -1.68313885,  1.29073295, -1.68665599, -1.71345309])"
      ]
     },
     "execution_count": 197,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out[0, :10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 198,
   "metadata": {
    "uuid": "2409ddc9-2963-4599-9d8c-a3abc1e010d3"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 750 ms, sys: 885 ms, total: 1.63 s\n",
      "Wall time: 1.66 s\n"
     ]
    }
   ],
   "source": [
    "%time out_ = out.read()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 199,
   "metadata": {
    "uuid": "2409ddc9-2963-4599-9d8c-a3abc1e010d3"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([-1.73369462,  3.74824436,  0.90627898,  2.86786818,  1.75424957,\n",
       "       -0.91108973, -1.68313885,  1.29073295, -1.68665599, -1.71345309])"
      ]
     },
     "execution_count": 199,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "out_[0, :10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 200,
   "metadata": {
    "uuid": "65d5272f-66d9-4fdd-a16a-ae900f2842c4"
   },
   "outputs": [],
   "source": [
    "import numexpr as ne  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 201,
   "metadata": {
    "uuid": "65d5272f-66d9-4fdd-a16a-ae900f2842c4"
   },
   "outputs": [],
   "source": [
    "expr = '3 * sin(out_) + sqrt(abs(out_))'  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 202,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8"
      ]
     },
     "execution_count": 202,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ne.set_num_threads(1)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 203,
   "metadata": {
    "uuid": "d58a70be-dc0f-444f-895d-9115864059c8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2.04 s, sys: 1.31 s, total: 3.35 s\n",
      "Wall time: 3.95 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([-1.64358578,  0.22567882,  3.31363043,  2.50443549,  4.27413965,\n",
       "       -1.41600606, -1.68373023,  4.01921805, -1.68117412, -1.66053597])"
      ]
     },
     "execution_count": 203,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time ne.evaluate(expr)[0, :10]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 204,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1"
      ]
     },
     "execution_count": 204,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ne.set_num_threads(4)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 205,
   "metadata": {
    "uuid": "d58a70be-dc0f-444f-895d-9115864059c8"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 3.81 s, sys: 2.63 s, total: 6.43 s\n",
      "Wall time: 2.72 s\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([-1.64358578,  0.22567882,  3.31363043,  2.50443549,  4.27413965,\n",
       "       -1.41600606, -1.68373023,  4.01921805, -1.68117412, -1.66053597])"
      ]
     },
     "execution_count": 205,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "%time ne.evaluate(expr)[0, :10]  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 206,
   "metadata": {
    "uuid": "d0c3ef43-f285-4dc1-b0ab-af206e6b3dd6"
   },
   "outputs": [],
   "source": [
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 207,
   "metadata": {
    "uuid": "4343a20a-8132-4fbf-9360-3a627da7d0cf"
   },
   "outputs": [],
   "source": [
    "!rm -f $path*"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## TsTables"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Sample Data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 208,
   "metadata": {},
   "outputs": [],
   "source": [
    "no = 5000000  \n",
    "co = 3  \n",
    "interval = 1. / (12 * 30 * 24 * 60)  \n",
    "vol = 0.2  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 209,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 1.1 s, sys: 179 ms, total: 1.28 s\n",
      "Wall time: 703 ms\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "rn = np.random.standard_normal((no, co))  \n",
    "rn[0] = 0.0  \n",
    "paths = 100 * np.exp(np.cumsum(-0.5 * vol ** 2 * interval +\n",
    "        vol * np.sqrt(interval) * rn, axis=0))  \n",
    "paths[0] = 100  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 210,
   "metadata": {},
   "outputs": [],
   "source": [
    "dr = pd.date_range('2019-1-1', periods=no, freq='1s')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 211,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2019-02-27 20:53:14', '2019-02-27 20:53:15',\n",
       "               '2019-02-27 20:53:16', '2019-02-27 20:53:17',\n",
       "               '2019-02-27 20:53:18', '2019-02-27 20:53:19'],\n",
       "              dtype='datetime64[ns]', freq='S')"
      ]
     },
     "execution_count": 211,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dr[-6:]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 212,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(paths, index=dr, columns=['ts1', 'ts2', 'ts3'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 213,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 5000000 entries, 2019-01-01 00:00:00 to 2019-02-27 20:53:19\n",
      "Freq: S\n",
      "Data columns (total 3 columns):\n",
      "ts1    float64\n",
      "ts2    float64\n",
      "ts3    float64\n",
      "dtypes: float64(3)\n",
      "memory usage: 152.6 MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 214,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ts1</th>\n",
       "      <th>ts2</th>\n",
       "      <th>ts3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-01-01 00:00:00</th>\n",
       "      <td>100.000000</td>\n",
       "      <td>100.000000</td>\n",
       "      <td>100.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-01 00:00:01</th>\n",
       "      <td>100.018443</td>\n",
       "      <td>99.966644</td>\n",
       "      <td>99.998255</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-01 00:00:02</th>\n",
       "      <td>100.069023</td>\n",
       "      <td>100.004420</td>\n",
       "      <td>99.986646</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-01 00:00:03</th>\n",
       "      <td>100.086757</td>\n",
       "      <td>100.000246</td>\n",
       "      <td>99.992042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-01-01 00:00:04</th>\n",
       "      <td>100.105448</td>\n",
       "      <td>100.036033</td>\n",
       "      <td>99.950618</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                            ts1         ts2         ts3\n",
       "2019-01-01 00:00:00  100.000000  100.000000  100.000000\n",
       "2019-01-01 00:00:01  100.018443   99.966644   99.998255\n",
       "2019-01-01 00:00:02  100.069023  100.004420   99.986646\n",
       "2019-01-01 00:00:03  100.086757  100.000246   99.992042\n",
       "2019-01-01 00:00:04  100.105448  100.036033   99.950618"
      ]
     },
     "execution_count": 214,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 215,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlwAAAGDCAYAAAD+nM7XAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4xLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvDW2N/gAAIABJREFUeJzs3XeYVOXZ+PHv9JndmZ3twNIWAQ8IUheQ3kFAEzGJ3aivMTEmlhjNm5ge034przHRNGNsWGKigoJSpKu0pYggHIoLbGELW2d2dvr5/bELscDWmT27O/fnuryEOec8z72wM3vzlPsxaJqGEEIIIYSIH6PeAQghhBBC9HSScAkhhBBCxJkkXEIIIYQQcSYJlxBCCCFEnEnCJYQQQggRZ2a9AwAIhyNadbUv7v2kpSXRGf0IIRKDfKYIkRg+/V7PynIZ2tpGlxjhMptNPaofIURikM8UIRJDLN7rXSLhEkIIIYToySThEkIIIYSIM0m4hBBCCCHiTBIuIYQQQog4k4RLCCGEECLOJOESQgghhIgzSbiEEEIIIeJMEi4hhBBCiDiThEsIIYQQPc7LL7/Q7PXKyjP8+tcP85WvfLlT4pGESwghhBA9zssvv9js9f379zFt2kw0TeuUeLrEWYpCCCGE6Jle3nCMXYfLY9rmhGHZXDNnyAWvr1+/Dq/Xw5NP/g2DwUBJSTG5uYMoKDjOLbd8hQEDBjJ79jz27MmPaVzNkREuIYQQQvQoc+fOx+l0cfvtX8PpdGK1Wrn22hu5/fY7SUpK1iUmGeESQgjRY9Vs2oC1Tw5JyjC9Q0lY18wZ0uxoVLxdeeVSli17mrvuahzZuvvu+3WJQ0a4hBBC9Ej+UycpX/YsZc881WnrdETXYTQa0TSN5ctf4aabbuWJJ54hPT2D1atX6hKPjHAJIYTokWo3bwIgVF5GsKgIW//++gYkOtWUKdN47LE/sHPnNgoLT5KT05eammqWLv0iAHv37mbNmjeprDzD00//g+uvvwmbzR63eCThEkII0eNE/X48O7aBwQCahmf3Lkm4Esx99z3Y9Ktvnff62LHjGTt2fKfFI1OKQgghehzPzh1E/X7SFizEYLXi3d15u9GEOB9JuIQQQvQ4NVs2gcFA6twFJI+4lODpEgIlxXqHJRKYJFxCCCF6FP/JEwROFJA8ajSW9HSceXkAMsoldCUJlxBCiB7l7GJ598xZACSPGoPBbMaTv0u/oETCk4RLCCFEjxH1N1C3Yzvm9HSSR44CwORwkDRiJMHiIoKlpTpHKBKVJFxCCCF6jLodO9ACftzTZ2Iw/vdHnGv8BAC8nXiUixAfJ2UhhBBC9Bi1mzeC0UjKtBmfeD159BgwmfDk7yJ98RU6RSc608svv8A119xw3mvFxUX8/e9/RlGGUV5ejtvt5rbb7ohrPDLCJYQQokfwnyggcOpk42L5tLRPXDMlJ5M0fASBUycJVsT2IGXRNb388osXvFZXV8u8eQu44YYvc999D7B+/VoOHz4U13hkhEsIIUSPULN5IwCpM2ef97orLw/fgf14d+eTfvnizgwtob16bCV7yz+IaZtjsy/l6iEXHqlcv34dXq+HJ5/8GwaDgZKSYnJzB1FQcJxbbvkKw4eP+MT90WgUh8MR0xg/TUa4hBBCdHuRhgY8O3dgzsggacTI897jHDMOjEYpD5EA5s6dj9Pp4vbbv4bT6cRqtXLttTdy++13kpSU/Il7N2/eyMSJkxk4MDeuMckIlxBCiG7Ps2MbWiCAe9GSTyyW/ziT00nSsOH4PjxIqPIMlozMTo4yMV095IpmR6Pi7corl7Js2dPcdddXGDBgIHffff+5a3v25LN3bz733PPtuMchI1xCCCG6NU3TGmtvGY24P7VY/tOcZ3cr7t7dCZEJPRmNRjRNY/nyV7jpplt54olnSE/PYPXqlQC899477NixjXvvfYCqqkoOHNgf13hkhEsIIUS35i8oIFB4CufY8ZhTU5u91zl2HOXLnsGzexdpCxZ2UoRCD1OmTOOxx/7Azp3bKCw8SU5OX2pqqlm69IscPnyIH//4eyjKcO6++2v4/X6uvvpLjGyq3RYPknAJIYTo1mq3NC6WP1tZvjnmlBQcyjAaDh8iVF39md2Moue4774Hm371rc9cy8npy7p1Wzs1HplSFEII0W1FfD48O3dgycwi6ZIRLT8AuMY3na0oRVBFJ5KESwgRE9FQiIjHo3cYIsF4dmxDCwZxz5h5wcXyn+YcOx4MBtmtKDqVJFxCiJioePF5Cr73IOHaWr1DEQlC0zRqNm8Ck4mUqdNa/Zw5NRXHkKE0HD1CuLYmfgEK8TGScAkhOiwaCuLZuZ2o3493j+z+Ep3D/9FxgkWFOMeMxexufrH8pznH54Gm4d27J07RCfFJknAJITrMd/AgUb8fAM/uXTpHIxJF7eZNALgvUFm+Oc5x4wFkWlF0mhZ3KSqKYgTeAHYAVmAw8D+AA/g18BEwFHhIVdWypmceBFKANGCtqqqvxyV6IUSXcDbJMrlSaFAPE66txex26xyV6Mkivno8+TuxZGWRNGx4m5+3pGdgv2gwPvUwYU8dZldKHKIU4r9aO8K1TVXVn6mq+gMgCbga+CXwtqqqvwaWA78DUBRlEjBbVdUf0rgX8/eKorRtrFcI0W1EQyHq9+3FnJ5O+qIljdM0Mq0o4qxu23tNi+VntXqx/Kc5x+dBNEr93r0xjk50BS+//MIFr0WjUR588F6eeuoJ/v73P/PjHz9EIOCPazwtfpeqqhpVVfXnAIqimIF+gAosAbY13fZu0+8Brjj7uqqqIeAQ0HzpXyFEt+U79CHRhgac4yfgzGus4i3TiiKeNE2jdsvmpsXy09vdztnyEPL92jO9/PKLzV4fMeJSbrvtDr761bsIBPxsbjr8PF5aXfhUUZSFNI5YrVRVNV9RlGzg7B7wOiCtKSHLpjHJ4mPXsltqPyvL1eqgO6Kz+hEiUdQcfB+A/nNnkKIM5Iyi4Dmi4rZEsab2/GlF+UzpfHWHDhMsLiJj6hT6DO7b/oayXFQMGUz94UOk2sHikr/LeCh46hkq39vW8o1tkDFlMoNuu+WC1998803q67289NLTGAwGCgsLGTx4MEePHuWuu+5i0KBBPPhgY0HUcDhMdXUlo0YNb/b93NH3eqsTLlVV1wBrFEV5VlGUu4BywAXU0Lheq1pV1bCiKGdfPyul6d5mVVTEv35PVparU/oRIlFo4TBntu3AlJqKP70PgQoP9tHj8KgqJ9dtInXWHL1DjCv5TNFHyX+WA+CYPL3Df/720ePwHjvOyfVbcXdgtExcWENDkEgkGvM2m/u7nzBhOsnJTq677lZefvkFolEDV1zxRSoqyvH7/5tz7NixjX/96wUmTpxC7965F2zz0+/19iRfrVk0fwkwSFXVVU0vFQAXAauAyUAhMLXp9wArgR83PWsGLgG2tDkyIUSX51MPE/XVk3rZvHPraJx5eVS8/CKe/F09PuESnS9UUYF3dz62AQNxKMM63J5zXB5nXvk33t35knDFSdaXriPrS9fp1v+VVy5l2bKnueuurzBgwEDuvvv+c9cmTZrMpEmTefjhH/Hqq//m6qu/FLc4WjPCFQBuVxRlLGABhgP3AEHg/ymKcjGNOxcfAFBVdYeiKBsVRfkljbsU71dVVSrLCdEDeZvWvpxduwX/3f3VoB4mXFeHOUV2f4nYqV6/DjSNtAULMRgMHW7P2qsXtv4DqD94gIjPhykpKQZRiq7AaDSiaRrLl7/CTTfdyh13fJ3HH3+U1atXMmnSFE6fLmHKlMaCuTk5fSkpKY5rPC0mXKqqHqdxV+L53HGBZ37bkaCEEF2fFong3bMHk9uNY8jQT1xz5U3A/9FxvHt3k9qOGklCnE/EV0/t1i2Y09Jw5U2MWbvO8XkECk9R//4+UiZPiVm7Ql9Tpkzjscf+wM6d2ygsPElOTl9qaqpZuvSLaJrGypUrOHLkMJFIhBMnCrjvvgfiGk+r13AJIcTHNRxRiXg9uGfP+cy2fOf4CVS8/BLe/F2ScImYqd26BS3gJ/WKKzGYY/fjy5U3gcrlr+LZvUsSrh7kvvsebPrVt857/Ze/7NyxIak0L4RoF09ThW7X+AmfuWbJyMB+0UX4Dh8i7Knr7NBED6SFw9S8vQ6DzYZ7xqyYtm3t3Qdr3374DnxAxOuNadtCnCUJlxCizbRoFO+efEwuF46hF5/3Huf4CU1FUOWsOtFxnt35hKurcE+djik5Oebtu6dORwuHqX57TczbFgIk4RJCtEPDsaNE6upwjh2PwWQ67z2upoX03nwpKik6RtM0qteuBoOB1PkL4tKHe+YsTK4Uata/TaS+Pi59iMQmCZcQos28+TuBpqNRLsCSkYl90EX41ENEPFKrSrRfw9EjBE6ewDl2HNasFutot4vRZiPt8kVEGxqofnttXPoQiU0SLiFEm2jRKJ7duzEmJ5PUQh0kZ94EiEbx7JWzFUX7Va9dDUDagsvj2k/qrDmYXC5q3l5LxCejXCK2JOESogepePklTv78p2jhcNz68B8/TqS2BufYcS3uFDs3rbhLphVF+wRLS6l/fx/2iy7CPnhIXPsy2mykLWgc5ap5e11c+xKJRxIuIXqIYFkZ1W+vJXCiAP/JE3Hr5+xBv+fbnfhpMq0oOqr67bVNhU4vj0mh05akzp6Dyemi+u21RHy+uPcnEockXEL0EFVvrYRo43llvkMfxqUPLRrFuzsfo8NB0vBLWvWMTCuK9op4vdS99w7mjAycY8d3Sp9Gu520BQuJ+nzUrJdRLhE7knAJ0QOEKiqo2/YelswsAHyHD8WlH/+JAsLVVTjHtDydeJaraWG97FYUbVWzaQNaMEjavAUX3A0bD6lz5mJMTqZ63VoiDQ2d1q/o2SThEqIHqHprFUQiZCy9Glv//viPHSUaCsa8n/OdndgSS2YWttxB+A7LtKJovWgoRM3G9RgdDlKmzejUvo12B2kLLifqq5dRLhEzknAJ0c2FqiqpfXcrll69cU2YRNKwS9DCYfzHj8e0H03T8OzOx2i3k3TJiDY962qaVvTulSKoonU8O7cTqa3FPWMmJoej0/tPnTMPY1Iy1evWEPXLKJfoOEm4hOjmqt56EyIR0hdfgcFoxDF8OBD7dVyBkycJnzlD8uixGC2WNj17doH92QX3QjSnsdDpGjAaSZ0zX5cYTA5H41qu+npqNqzXJQbRs0jCJUQ3Fqqupm7rZixZWaRMugwAx1AFjMaYr+M6tzsx78LFTi/EktU0rXjoQzmrTrTI9+FBgsVFuPImYsnI0C2OxlGuJKrWribq9+sWh+gZJOESohurXvMmWjjcOLrVtIjd5HBgH3QR/oKPYjYVomka3t35GGw2kkZc2q42XOPPTivKbkXRvOp1jecZpi1YqGscpqQk0uYvJOr1UrNRRrlEx0jCJUQ3Fa6toXbzJszpGaRMnvqJa0nDhkM0iu+IGpO+gkWFhMrLcI4ajdFqbVcbZ4ugemS3omhGoLgY34EPcAy9GHvuIL3DIXXuPIwOB9VrZJRLdIwkXEJ0U9VrV6OFQqQvXvKZEg1JwxrXcTUcis204tnpRGcrip1eiCUrC9vA3MbdijKtKC7gv6Nb8T3Gp7VMScmkzltAxOuhZtMGvcMR3ZgkXEJ0Q2FPHTUbN2BOSyNl6vTPXLcPHoLBbI7JOi5N0/Dk78JgtZJ86agOteXKmwCRCN59sltRfFa4thbP9vewZPciefQYvcM5J23egqZRrreIBgJ6hyO6KUm4hOiGqteuaSwIuWjJeXcMGq1W7EOGEig81eHRpGBJMaHSUpIvHYXRZutQW06ZVhTNqF7duCYxbf4CDMau8+PJlJxM6tz5RDwyyiXar+t8RwshWiXi9VKzYT0mtxt3MwUhz04rdnSU62xy5Bzf9t2Jn2bNysY2YKDsVhSfoEUilD3/HNXr1jSO2k6ZpndIn5E2bwFGu53q1TLKJdpHEi4hupnqt9eiBfykL1zc7AL2s2cddjTh8u7Ox2A24xw1ukPtnOWaMLFpWnFvTNoT3Vukvp7iP/wftRvXY+3bj/7f/X6HR1LjweR0No1y1VG7eZPe4YhuSBIuIbqRSNNRIyZXCu6Zs5q91z4wF4PNju9w+wug+k8UECwpJvnS0Rjtsan27RzXeAixrOMSwbJSTv3qYXyHDpI8egwDvvd9LBmZeod1QWnzF2Kw2ala8ybRYOyPzhI9myRcQnQjNevfJtrQQNrCy1scBTCYzSQpCqHSUkLV1e3rb/NGANwzZrbr+fOx9uqNtU8Ovg8PytRMAvMdPsSpXzxMqLSUtIWLyPnGPTFL6uPF5HSSNncekdpaKl56Hi0a1Tsk0Y1IwiVENxFpaKB63VqMTieps+a06plz5SHaMcoV8fnw7NyBOTOTpBEj2/x8c5LHjEULBvF9eDCm7YruoWbzJooe+R3RgJ9et95O1peu7VKL5JuTdvlibP0HULtlM2XPPiVJl2i17vEdLoSgduN6or560uYvxGi3t+oZx9mF8+2ox+XZsQ0tEMA9fWbMfxg6x4wFkHVcCUaLRCh/6XnKn3sao8NBv29/B/e0z5Y16cpMSUn0+/Z3sOUOou6drZT+8wm0SETvsEQ3IAmXEN1A1O+nau1qjElJpM6Z1+rnbP36Y3Q68R0+hKZprX5O0zRqNm8CkykuPxDtgy7C5HZTv3+fjBAkiIjPR/Gf/kDN2+uw5uQw4Ps/IuliRe+w2sXkdNLv/gexXzQYz/ZtlD75d7RwWO+wRBcnCZcQ3UDNpg1EvV7S5i3A5Gj9OheD0UiSMoxwVSWh8vJWP+f/6DjBokKcY8Zidqe2J+QW43KOHkPE48F//FjM2xddS7C8nMJf/RzfgQ9IGjmK/t/7IdasbL3D6hBTUhJ9v/UAjqEX49m5g9NP/FWSLtEsSbiE6OKiwSDVa1ZjdDhInTu/zc8nDWt7eYiz297dM2e3ub/WSj43rSi7FXuyYFkphb96mODpElLnLaDvPfe16R8NXZnJ4aDvvffjUIbh3Z1PyV8fJxoK6R2W6KIk4RKii/Ps3E7EU4d71hxMycltfj5peNsWzkfq6/Hs2oElK/vcovt4SBp+CQabDe++vW2a7hTdR8TjofjRR4h4PGRdfyPZ193QbRbHt5bRbqfvPd8iafgI6vftpeTxPxENSckI8Vk96ztfiB5G0zRq1q8Do5HU2a3bmfhpll69MaelNa7jasV6qbpt76GFQrhnzIrrD0ejxUryiJGEysoInj4dt36EPqKhIMWPPUqovIz0xVeQ1o7R2e7CaLORc8+9JI0che/Afkr+9KiUPBGfIQmXEF1Yw9EjBAoLcY4bjyU9o11tGAwGHMOGE/F4CJYUN3uvpmnUbtkIJhMp0+J/vIpzzDgA6mVasUfRolFKn/wH/uPHcE28jIyrrtY7pLgzWqzkfONukseMxffhQYr/+AhRv1/vsEQXIgmXEF1Yzfp1AB0eHWjtuYoNR48QLCnBNT4PsyulQ322RvKo0WA0SnmIHubMq//Bm78Tx9CL6XXb7T1uGvFCjBYLOXd+A+f4PBrUwxQ/+n9E/Q16hyW6iMR4FwjRDYUqK/Hu2Y1twEDsQ4Z2qK3WLpw/t1h+xqwO9ddaJqcTx5Ch+As+Ilxb0yl9iubVvrOVilf+TcTna9fzNZs3Ur36TSy9ejdWj7dYYhxh12Ywm+nz1a/jmjiJhqNHKH36n3qHJLoISbiE6KJqNq4HTSN17nwMBkOH2rJkZGDJ7kWDeviCRRojHg/e3buw9O6NQxnWof7awjlmHGga3vf3dVqf4vxq332HsqefpPqtVZz44UN4due36fn6D/ZT/vxzmJwu+t57PyanM06Rdm0Gk4neX/kalqxsfAcPSK05AUjCJUSXFA0EqN26GZPLhWvixJi0mTRsONGGBvwnT573eu1776CFw6TOmN3hBK8tksc2loeol2lFXdUf2E/Zs09hTEombeEiovVeTv/lMYof/2OrzuL0nzpJyV//jMFoJOfue7Fmd+86Wx1lMBqxX3QR0YYGQhWtr4Enei5JuITogjw7thOtr8c9cxZGizUmbTZ3rmLjYvnNGMxmUqZMjUl/rWXNysbat1/jYdayyFgX/hMFlPzlcQxGI33vvpesL13LwJ88jONihfq9ezj5o4eo2bThgiM1oaoqiv/4CFrAT++vfA3H4CGd/BV0TfaBgwDwnzihbyCiS5CES4guRtM0qtevazxWZ2b7SkGcT3PnKjaohwmVleLMm6DLNJBzzFi0cJj6gwc6ve9EFywvp/jRR9CCQXrfcSeOoRcDYO3dh34P/C/ZX74VgPJlz1L0218TKCn5xPORhgaK//gIkZoaMr90La68CZ39JXRZttxcAAInT+gah+gaJOESootpUA8TLC7CNT4PS1pazNo1p6Rg7duPhmNHPlMNu2bTRgBS41hZvjlnD7OWacXOFa6ro/iR3xHx1JF9w824xo3/xHWD0UjqjFnkPvyrxp13R49w6mc/ovL15URDIbRwmNN/fZxgUSHuWXNIW3C5Tl9J12QfMAAMBvwnCvQORXQBZr0DEEJ8UnVTKYj2HOPTkqThw6kpLsL/0XGSmhbGh+vq8O7djTWnb4d3Q7aXbWAuptRUvPv3oUUiGEwmXeJIJFG/n+I/PkKoopz0JVc2W1jXnJpKzte/iXfvHspfeI7K15fj2bUTa04OvoMHSL50FNnX39ipa/+6A6PdgbV3HwKnTqJFowlTHkOcn/ztC9GFhCoqqN+3F1vuIOwXDY55++crD1H37laIRHDPnKXbD8zGw6zHEq2vp+HYUV1iSCRaOEzJX/9M4EQBKVOnt7owqXPsOAb+7Je4Z88heLoE7+58bAMG0udrd0mSfAG2gQOJ+v2Eysv0DkXorMURLkVRBgM/B/YA/YBKVVV/pijKT4BZH7v1F6qqrmt65kEgBUgD1qqq+nqM4xaiR6rZ1FgKIm3uvLgkP46LFTAY8B36ED6/FC0apXbLJgxWKymTp8S8v7Zwjh1L7eaNePftPTf6JmJP0zTKnn0a34H9JI0cRa+bb2nT95rJ4aDXjV8mZeJkPPk7SV+0GKPdHseIuzd77iA827fhP3kCa+8+eocjdNSaKcV04CVVVVcAKIryoaIoqwBUVZ316ZsVRZkEzFZVdbGiKBbgQ0VRtqiqKlUNhWhGYymILZhcKTjzYlMK4tNMSUnYcwfhL/iIqN9Pw/FjhCoqSJkyDVNS2w/GjiWHMhyj3U79vj1o11wn01NxUrn8Vereewdb7iByvv4NDOb2rSxxDB2KY6g+U9DdiX1gLtC4UzFl0mR9gxG6avGdpqrqrk+9ZATqARRF+T4QAEzAn1RV9QFXANuang0pinIImAHIKJcQzajb/h5Rn4/0Kz8f1+rcjmHD8Rd8RMOxI9Ru2QyAe5Y+i+U/zmixkDTyUrz5uwiWFGPr20/vkHqcmo0bqFr1BpbsXvS951sYbTa9Q+rxbP0bF84HZOF8wmvTP20URVkKrFFV9bCiKP8GTqiqWq8oyl3An4DbgWzg4/vO65pea1ZWlqstobRbZ/UjRFtomkbhpvUYTCYGX30l1vT4fZ9aLhtP9VurCO7Nx7tvL8mDcuk/cXSXGFHSpk/haP4utCMHyRozXO9wWqW7fKZUbttB+QvPYXG7ufRnP8LRp7feISUIF8X9+hIoPEVmepKsdevGOvpeb3XCpSjKbGA2cB+AqqoHP3Z5A/Bg06/LgY9HldL0WrMqKjytDaXdsrJcndKPEG3lO/QhDYVFuCZdRm3EDHH8Po1m9sVgNlOxeQsAyVNmcOaMN279tUU092IwGil7dzv22Qv1DqdF3eUzJVxbQ8HvH8FgtdLn7vvwmpPxdoO4ewpLv4E0FBZRfOAYtpwcvcMR7fDp93p7kq9W7VJUFGUJsBC4F+itKMpkRVF++7FbhgLHmn69Epjc9JwZuATY0ubIhEgg8SwF8WlGm+3cDkiDzYbrsq6zrsSUnIzjYoXAiQLCNS0fJyNax7s7Hy0UIvOqq7HnDtI7nIQjBVAFtCLhUhRlPPAv4DJgI7ACUICwoiiPNq3juhH4BoCqqjuAjYqi/JLGacb7ZcG8EBcWLC+n/v192AddhCMOpSDOJ2l4Y3mIlEmXYXI4OqXP1nKOGQeAV4qgxszZQ6jjtRlDNO/cwvmTso4rkbVm0fxuoE1nfaiq+tuW7xJCANRsbCwFkTp3Xqf16Z4+g2DpadKXXNlpfbaWc+xYKl56Hu++vaTOit3RRokq7Kmj4YiKffCQmJ5cIFrv3ML5CxwcLxKDVJoXQkdRv5+6d7ZgcrtxdeLogzk1jT533Nlp/bWFJSMTW//+NBw+RNTfgNHetUbguhvv3j2gabjG5+kdSsIy2mxYc/riP3lCKs4nMPlbF0JHddveJdrQQOrM2e2uh9QTJY8Z13iY9YEP9A6l2/OenU781DmJonPZB+aiBYMES0/rHYrQiSRcQuhEi0apWf82mEy4dTo0uqs6e5i1d6+s4+qISH09vsOHsA3MxZKZpXc4Ce3cwvkTJ3SNQ+hHEi4hdOI79CHB0tO4Jk7C7HbrHU6XYhswEHN6OvUfvI8WDusdTrfl3bcXIhGZTuwC/rtw/oSucQj9SMIlhE5qNm0AIHV25y2W7y4MBgPJo8cS9floOHpE73C6Le+epulESbh0Z+s/AIxG/FJxPmFJwiWEDkJVVdS/vw/bgIHYB0ldpPM5N60o5SHaJdLQgO/gAax9+2HtJVXl9Wa0WrHmNFac1yIRvcMROpCESwgd1L2zBaJR3LNmd4kjdbqiJGUYxqQkPDu3Ew0E9A6n26nf3zgdK9OJXYc9VxbOJzJJuIToZFokQu3WzRjtdlImXqZ3OF2WwWwmdc48Ih7PuelX0Xr/nU6coHMk4qxz67hkWjEhScIlRCer37+PcHU1rslTMNrteofTpaXNW4DRbqd69VsyytUG0UCA+g/2Y+ndG6uc3ddl2AY2Lh+QI34SkyRcQnSymk0bAUiVUhAtMjmdTaNcddRu2aR3ON1G/YH9aMEgrnF5MmXdhdj69wOTCb+UhkhIknAJ0YmCFeX4Dh7APmQotn799Q6nW0jFTtYvAAAgAElEQVRbcDkGm52q1W8SDQb1Dqdb8O7eDcjuxK7GaLFik4XzCUsSLiE6Ue3mTYCMbrVF4yjXXCK1tdRu3ax3OF1eNBSkfv8+LJlZ2AYM1Dsc8Sm2gblooRDBkhK9QxGdTBIuITpJNBSi7t2tGJOTcebJyENbpC1YiMFqpeqtVURDMsrVHN/Bg0T9fpzjx8t0Yhdkb6o4LwVQE48kXEJ0Eu/e3UQ8HtxTp2O0WPUOp1sxu1JInT2XSE0NdVu36B1Ol3Zud+I4Seq7Intu48J5/0nZqZhoJOESopPUNi2Wd8+YpW8g3VTawkVNo1xvEg2F9A6nS9LCYbz79mFOS8M+6CK9wxHnYe3buHBezlRMPJJwCdEJAiUlNBxRSRp+CdbeUvW7PcwpKaTOnE24uoq6d7fqHU6X5FMPE/XV4xyXh8EoH+9dkdFiwda3X+PCeTknNKHIO1KITlC7pWl0SxbLd0ja5YswWCxUvblKflidh3f3LkB2J3Z19txctHCYQEmx3qGITiQJlxBxFg0EqHvvXUxu97nzAUX7mN2puGfOJlxVSe177+gdTpeiRaN49+7B5ErBMWSo3uGIZkgB1MQkCZcQcebJ30nU58M9bQYGs1nvcLq99MsXYTCbqXpzpYxyfUzDEZWIx4Nz3DiZTuzi/nvEzwld4xCdS96VQsRZ7eaNYDDIYvkYMaem4Z4xi/CZM9Rte1fvcLoMz245O7G7sPbti8FsltIQCUYSLiHiyH/qJP6PPiL50lFYMjL0DqfHSLt8ceMo1yoZ5YKm6cQ9uzEmJ5N0saJ3OKIFRosFa99+BIsK5fs3gUjCJRKa/0QBxY89SvlLL1D7zhb8Jwpiekhy7eamxfKzZLF8LFnS00mZPoPQmQrqdmzTOxzd+T86TqS2BueYcTJt3U3IwvnEI+9MkbCigQCn//5XQuVln7xgMGDp1Qtb337Y+vXH1q8/1n79sGRktmltTKShgbrt2zCnZ5A8clSMoxfpi5ZQu2UzVSvfIOWyKRhMJr1D0o333HTieJ0jEa1lHziIWjbhP1GAXY5gSgiScImEVfn6a4TKy0idMw/XpMsIFBURLC4kUFREoKgQb2n+uR9kAAabHdeECWR87ios6S1PD3q2b0MLBHAvWiKLmOPAkp6Be9p0ajdvwrNzOymTp+odki40TcOzJx+jw0HS8BF6hyNaydZ0xI/sVEwcknCJhOQv+IjqtWuwZGWT+YUvYbTZcAwecu66pmmEq6sJFBUSLG5MwPzHj1P3zlY827eROmce6YuvwOR0nrd9TdOo2bQBTCbc02Z01peVcNIXX0HtO1upXPkGrkmTEzKxDZw8QbiyEtekyRgtFr3DEa1ky2laOC87FROGJFwi4WjhMKVP/xM0jV633IbRZvvMPQaDAUt6Opb0dBg1uvG5aJS6be9RueI1qteupnbrZtIWLiJt3gKMdvsnnvd/dJxgcRHO8XmYU1M75etKRJaMTNxTp1G7ZXPjKNdlU/QOqdP9d3eiFDvtTgxmM9Z+/QkUniIaCkmynAAS75+DIuFVrnqDYHER7pmzSRo2vNXPGYxG3FOnkfuLX5N13Q0YTGYql79KwUPfoWbD25/YbXT23MTUWXNiHr/4pPRFV4DJRNXKNxJux5emaXh352OwWkkeMVLvcEQb2XMHQSRCsFgWzicCSbhEQgkUFVL15krM6elkfvGadrVhtFhIm7eA3F/9hvQrP080EKT8hWWc+OH3qNuxjYjHg2fXDiy9euFQhsX4KxCfZsnKwj11GsHS05x+4q9okYjeIXWaYFERofIykkeNPu9Ireja7AMbF8v7TxboHInoDDKlKBKGFok0TiVGIvS6+VZMDkeH2jM5HGR+fimps+dSteoNajZtoPSJv2F0OtHCYVJnzk7INUV6yLr2BoKlpXh351P65BP0/spXe/yffcTno/zFZQC4xsl0Yndkz5UjfhJJz/5EEuJjqtetIXCiANfkKSRfGrsyDeaUFLKvv5FBv/g1KZOnEq2vx2C1kjJlWsz6EM0z2mz0vedb2IcMxbNzO2VPPYkWjXZK33Xb3uXUL39GoKSkU/oDCNfWUvTbX9NwRMU5Pk/Wb3VT1j45GCwWWTifIGSESySEYGkplStew+RKIfvaG+LShyUzi96330H6kivQIpEL7mAU8WG02+l77/0UP/LbxiN/zCZ63XxrXEe6vMc/ouyZp9DCYYof/T0DvvfDuG+SCFVUUPTI7wiVl+GeOYvsG7/c40fzeiqD2Yytf3/8J08SDQUxWqx6hyTiSN6losfTolHKnvknWihE9o03xz0Rsvbug61vv7j2Ic7P5HDQ975vYxswkLqtWyh/YRmapsWlr0hDA+pvfo8WDuPMm0C4spLiPz5C1N8Ql/4AAsVFnPr1LwiVl5F+xZVk33SLJFvdnG1g08L5oiK9QxFxJu9U0ePVbtpAw9EjOMeNx5UnB/v2dKakZPrd/yC2/v2p3bSBipdeiHnSpWkaZc88hb+0lLRFS+jztbtwz5hJ4NRJSv7yeFx2SzYcO0rh//slkdoasq69nsyrvoDBYIh5P6Jz2QfmAshB1glAEi7Ro4Uqz1Dxyn8wJiWTfePNeocjOonJ6aTv/Q9izelLzfp1nPn3v2KadNVu3og3fyeu4cPIvOpqDAYD2Td+meRLR+E7eICy556JaX/1H+yn6P9+S9Tvp/ftd5A2f2HM2hb6sjdVnJd1XD2fJFyix9I0jbJnn0YL+Mm69nrMbilAmkjMrhT6ffs7WHv3oXrtaipfeyUmSZD/1EkqXnoBo9OJ8u1vnTvD0WAy0edrd2HLHUTdu1upfH15h/sCqNuxneLHHgVNI+cb9yTsEUY9lbVPDgarVXYqJgBJuESPVffeO/gOHiBp5KWkTJEfUonI7HbT74HvYMnuRdWbK6l6Y0WH2ov6Gzj9tz+jhcP0/p87sGVlfuK60W6n7933YcnMouqNFdS+s6VD/VVveJvSf/wNo9VK3289gHP0mA61J7oeg8mErf8AAiXFRAMBvcMRcSQJl+iRwjU1VPzrRQw2e+NONVnrkrDMqWmNSVdmFpWvL6dy1RvtaqdxxPQZQmVlpC1chLPpyKfP9Od20/e++zEmJ1P27NPUH9jfrr7OrHiNiheWYXK56P+d75F0sdKuuEXXl6QMg0iEM8tf1TsUEUeScIkeJ1BYSMlfHiPq85H1xWuwZGToHZLQmSU9g34P/i/m9AwqX3uF0qf/Sbi2tk1t1G5tPK/RPngImUu/0Oy91t596Hv3fRhMJkr+8nirF0Rr4TD1Bz7g9F8eo+qNFViysuj/3R9g6z+gTbGK7iV98RVYe/ehZt0avPv26h2OiBNDvLZMt5FWUeGJeydZWS46ox+hj1BlJZUrXqVu23ugaTjHjafPnd+QbfPinGBFOSV/epRgSTFGu530JZ8jdd78Fg8ODhQWcuqXP8NgsTLwxz87l8S39Jni2Z3P6b8+jsnlYsBDP8SSmfWZe7RolIZjR/Hs2I53dz4Rb2N7tgED6XvPt+Tw8wRxoe8x0TV8+r2eleVq87SJJFyi24t4vVS9tZKa9Y0HSFv79iPri9eQNPJSmUoUn6FFItRu2cSZFa8R9XqxZGWR+aXrcI4dd97vl6jfz8mf/4RQaSk537wX55ix56615jOlev06Kl58Hkvv3gz47g8wOZ1omkbg5Ak8O7bjyd9JuLoaAJMrBdeECbgmXIZ98GD5x0KCqdm8ifLnnsY+eAj9H/wuBrPUJu8qOiXhUhRlMPBzYA/QD6hUVfVniqKkA78GPgKGAg+pqlrW9MyDQAqQBqxVVfX1FuKQhEu0WTQYpGb9OqreXEm0oQFzegaZS6/GNWmy/KASLYrU11O58nVqNrwNkQiOixWyrrsB+4CB5+7RNI3SJ/+OZ/s20uYvJOva6z/RRms/Uyr+/RLVa1ZjHzKUpGHD8OzcSai8DACjw4FzfB6uiZeRpAw7t+tRJB5N0zj9t7/gzd9J+uIryLz6i3qHJJp0VsI1AchRVXVF0+8/BG4G7gA2qKr6sqIoVwLXqKp6s6Iok4Afq6q6WFEUC/AhMEFV1ZpmupGES7SaFo1S9947VK54jXB1NcbkZDKWXIl79hw5GkO0WbC0lIp/v0T9+/vAYCBl6nQyl16N2Z1K7dbNlD3zFPaLLqL/dx76zIhDaz9TtGiU0if+imfXTgAMVivOMWMbk6wRI1uc0hSJI+LzcerhHxM6c4a+932b5BEj9Q5JoNOUoqIoh4GrgHXAFFVVC5tGu46pqpquKMrDQFBV1Yeb7n8d+EcLo1xdYl5TdH1V+bs58fSzNBQWYbRa6XPlEvpdvRSzM1nv0EQ3V7PvfQr++TS+k6cw2u30WXw5p1e+icFiYcwjv8PeK7tD7UdDIYqXv469Vy/SJ+ZhsttjFLnoaTxHj/HBd7+POTmZMX/4Pdb0NL1DEp8V34RLUZSlwCxVVe9VFCUA9FJVtUZRFDMQAizA48AhVVX/0PTMMmCTqqr/aKZpGeESLfLu30fJH/9wbhQi43NXYUlP1zss0YNokQi1WzdTufy1c4vXc75xN86x4897v3ymiHipfnstFS+9gGPYcPrd/6Ask9BZLEa4Wr0iT1GU2cBs4L6ml8oBF1BD43qtalVVw4qinH39rJSme4Vot0hDA+XPPQsmE/3/9yEcFw3WOyTRAxlMJlJnzcE1cRLVa9dgdrsvmGwJEU+pc+fjO3yI+n17qVr1BhlXfl7vkEQHtSplVhRlCbAQuBforSjKZGAVMLnplqlNvwdYefb1ppGvS4COlVsWCe/MK/8mXF1F+uIrJNkScWdKSibzqqtJnT1X71BEgjIYDPS+9XbM6elUvr4c3xFV75BEB7WYcCmKMh74F3AZsBFYASjAQ8B8RVF+AFwNPACgquoOYKOiKL8E/gTc38KCeSGa5TuiUrtpA9acHNIXX6F3OEII0SlMTid9vvp1MBg4/fe/EPbU6R2S6ACpwyW6tGgwyMmf/pBQeTn9v/t9HIOH6B2SEOfIZ4roDFVvruTMq/8haeQo+t5zn6zn0kEs1nDJ35ro0irfWEGorIzUufMl2RJCJKS0yxeTNGIkvgP7qV63Ru9wRDtJwiXiRtM0OjKC6j95guo1b2HOzGzx7DohhOipDEYjvW//Kia3mzOv/oeG48f0Dkm0gyRcIuY0TcO7by8nfvA9Tj38E0KVlW1vIxym7Ol/QjRKr5tvxWizxSFSIYToHswpKfS5406IRjn91z/Leq5uSBIuEVOBkhKK//B7Sh57lFB5GYFTJzn1i5/S8NHxNrVTvXY1gcJTpEyZJpWWhRACSBo2nIyrriZcXUXpE39Di0b1Dkm0gSRcIiYivnrKX3qBkz/9Ib6DB0gaMZKBP/0FWdffSMTjoei3vz53rElLgqWlVL6+HFNKClnXXBfnyIUQovtIX7SE5FGj8X14kMo3VugdjmgDOYpcdIgWjVL7zhYqX3uFiMeDJSuLrGtvIHn0GAwGA7acHKzZvTj9tz9z+m9/JlhWSvqSKzEYzr/BQ4tGKXvmn2jhMNk33IzJ6ezkr0gIIbqus+u5Tj78Y6reWIHjosEkXzoq7v1qkQh1775D6ExF48iaFkWLahCNokUjTf+PQtNrjqEX454xM+5xdSdSFkK0W8PRo5S/uIzAqZMYbDYyllxJ6vyF5z2IN1BcRPEfHyFcWYnrssn0uuV/zntfzaYNlC97FufY8fS565sXTMyE6ArkM0XoxX/yBIW/+jkGm42BP/wJlsysuPZX+cYKKle81voHDAYG/vQX2HJy4hdUJ+rUo32EOCtUVcWZV17Gs2M7AK7LJpP1xWswp174gFVb334MeOhHlDz+RzzbtxE6c4acb9yN2ZXysXYrOfOflzE6HGTfeJMkW0IIcQH2gblk33AzZc8+RclfHqf/dx/CaLHGpa+G48eofGMF5vR0et/+VQxmc2MtMKPx3P8xGDGYGn/tP3aU0iefoHLFq+R8/Ztxiak7koRLtEmgqJBTv/oFWsCPbWAu2Tfc1Or6WGa3m34P/C9lTz+JZ+cOCn/xMDn33Ictpy+aplG+7Fmifj+9brmt2eRNCCEEpEyfQcOxo9S99w4VL71Ar5tvjXkfkYYGSp/4G2gavb/yNZIuVlp8xpKZRc2G9Xh35+M/dRL7gIExj6s7kkXzotU0TaP8+efQAn6yrr+RAd//UZuLkRqtVnrfcSfpV36e0JkKCn/1c+oPHsCzcwf1+9/HMWw4KdNmxOkrEEKInsNgMJB9483Y+vendvMm6t57N+Z9VLywjNCZCtIXLWlVsnU2royrrgag8rVXYh5TdyUJl2g1z/ZtNBw9QvLYcaTNnd/u4yUMBgOZn19K7zu+hhYKUfzo/1G+7BkMViu9vnybTCUKIUQrGW02+tz5TYwOB2XLniFQWBiztut2bqdu27vYcgeR8bmr2vRs0iUjcFysUP/BfhqOHY1ZTN2ZJFyiVSINDVT8518YLBayr70+Jm2mTJpMvwf+F1NyMtGGBjKvuhprdnZM2hZCiERh7dWL3v9zB1owSMlfHiPi83W4zVDlGcqfewaDzUafO+7EYG7bCiSDwUDm0i8CcOa1Vzp06khPIQmXaJXK15cTqa0lffEVMd0N4xgylAE//Am977iT1HkLYtauEEIkEufYcaRdvphQeRllTz3ZoQRHi0Yp/cffiTY0kH39TVh79WpXO46hQ0kaOYoG9TC+Qx+2O56eQhIu0aJAcRE169dhycom7fJFMW/fkp5ByqTL2j1FKYQQAjKXfgGHMgzv3t1Ur13d7naq3lxJw9EjOMfnkTJ1Wgdj+u9arkQf5ZKfcKJZZxfKE42Sdf0Ncdt2LIQQomMMJhN9vnonJncqZ175N77Dh9rcRsNHx6l8fTnmtHR63Xxrh9fU2gfm4hyfh7/gI+rf39ehtro7SbhEszw7d9BwRCV59Bico8boHY4QQohmmN2p9Pna1wEoeuR3lD37FKHKylY9G/V/rATE7XfE7KSPjM8vBYOBM8tfTejzHyXhEhcU9TdQ8e+XMJjNZF13g97hCCGEaIWkixVyvnkPlqwsards5sT3/5ey558jXFPd7HPlL75AqKKctMsXkzRseMziseX0xXXZZIJFhXjyW3embk8kCZe4oMo3XidSU0PaoiVYs2T3oBBCdBfOUWPI/ekv6H37HZjT0qnduJ6C732H8n+9SLi29jP3e/J3UvfuVmwDc8n8/NKYx5PxuavAZKJyxXK0SCTm7XcHknCJ8wqUlFD99losmVmkL1qidzhCCCHayGAykTJ5KrkP/5Jet9yGyZVCzbo1FHzvQSr+8zIRrxdoPFat7NmnMVit7SoB0RrWrGzc06YTKiulblvsC7R2B3K0j/gMTdOoeHEZRCJkXXcDRqsslBdCiO7KYDbjnj6TlMlTqd26hcpVr1O9+k1qNm4gbf58Go4cIerz0evLt2Ht3TtucaQv+Rx1775D5esrcE2ajNFiafEZTdPw7t5F1ZurMKemkjJ1Os7RY+KSFMZb94tYxJ139y58hz4k+dJRJI+WhfJCCNETGMxmUmfPIWXqNGo3b6TqzVVUrXwDAOe48aRMj++xapb0dNyz51Kzbg21WzeTNmdes/cHT5dQ/sLz+A4dBIOBwKmT1O9/H5PThWvyFNxTp2Hr1z+uMceSJFziE6J+PxX/OrtQ/kY5ZkcIIXoYo9VK2vyFuGfMombDegKnTpB945c75fM+fdESardsomrVG7inTsdos33mnqjfT+XK16letwYiEZJGjiL7+hvRgkFq392KZ/s2atatoWbdGmy5g3BPnY5r0iRMSclxj78jDF2kEJlWUeGJeydZWS46o5/urOKVf1P91irSl1xJ5tIv6B2OEF2afKYI0XZnXnuFqlVvkPmFa0hftPjc643Th/lU/OtFwtVVmDMyyL7uBpLHjPtEMqiFw3jf30fdu1up/2A/aBoGsxnnuDxSpk0nadjwmBfS/vR7PSvL1ebsVEa4xDnB0tNUr12NOT2D9MVX6B2OEEKIHiht4eXUbFxP1epVuGfOwpSURLD0NOUvLMP34UEMZjPpV1xJ+qIrzjsCZjCbcY3PwzU+j3BNNXXb3qP2na14dm7Hs3M7ScNH0O/bD+rwlTVPEi4BNFWUf/H5xoXy115/3m9yIYQQoqNMScmkLVxEZdNIl8FkomrNW43ThyNGkn3DTVh7tW7xvjk1jfRFS0i7fDH+48eoe+8dTE5XnL+C9pGESwDg3bsH38EDJI0YiXPceL3DEUII0YOlzZ1PzdvrqF7zFgDm9AyyrrsB59hx7VpLZjAYcAwZimPI0FiHGjOScAk0TaPqjRVgMJB9vSyUF0IIEV9Gu53ML3yJ8heXkTZ3PulLruzxMyuScAkaDh8iUHgKZ95ErL376B2OEEKIBOCeNp2UqdMS5h/5UmleNG69BdIWLNQ5EiGEEIkkUZItkIQr4QVPl1C//33sg4fguGiw3uEIIYQQPZIkXAmu+u21gIxuCSGEEPEkCVcCi3g81L33LpbMLJxjZWeiEEIIES+ScCWwms0b0UIhUuctiHlVXiGEEEL8l/yU7ULCtTX4jqid0lc0FKJmw9sYHQ7c06Z1Sp9CCCFEopKEqwspe+Ypin7zK3yHPox7X56d24nU1eGeMQuj3RH3/oQQQohEJglXFxHxeKg/eACA8uefQwuH49aXpmlUr10DRiOpc+fFrR8hhBBCNJKEq4vw7NkNkQgmd+q5Q6TjxXfoQ4LFRbjyJmJJz4hbP0IIIYRoJAlXF+HZtQOAfvfdj8nlonLl64QqK+PSV/VaKXQqhBBCdCZJuLqAcG0NDeph7IOHYOs/gMwvXosWDFLxrxdi3legpBjfgf04hl6MPXdQzNsXQgghxGe1eJaioii9gZ8Do1VVndD02q3AnYC/6bYnVVV9runaTcBYIAIcV1X1b3GIu0fx7M4HTcM1YRIAKVOmUvfOFrx7dlN/YD/JI0fFrK8aKXQqhBBCdLrWjHBNA1YAnz7w6DpVVWc1/Xc22eoHPAA8oKrqd4CvKIoyNKYR90CenTvAYMCVNwFoPFsq+8abwWik/PllREPBmPQT9tQ1FjrNyiZ59NiYtCmEEEKIlrWYcKmq+h/Ac55L31QU5QFFUX6kKEp602sLgd2qqmpNv98GLIpNqD1TqKoS/7GjOC5WMKemnnvd1q8/qXPnE6oop3r1WzHpq3bTRrRwmNT5UuhUCCGE6EwtTilewGZglaqqFYqiLAb+DcwFsvlkclbX9FqLsrJc7QylbTqrn9YqfncjADlzZn4mtrT/uYk9+TupfmsVuYvnYe/du939RINBCjZtwJSczODPXY7JIbW3hIiFrvaZIoSIj46+19uVcKmqWvCx324AXlcUxQSUA0M+di0FONaaNisqzjeIFltZWa5O6actTm/cAkYjXDzyvLFlfPFaSp/4K4cf/zs5d9+HwfDpmd3Wqd26mVBtLWmXL6bKGwZv1/pzEKI76oqfKUKI2Pv0e709yVe75pUURfmVoihnk7WhQIGqqhFgDTBeUZSzWcFkIDbzYT1QsLycwIkCkoZfgsl1/r8818RJOIYNp37/+9S/v69d/WiaRvW6NWAykTp3fkdCFkIIIUQ7tJhwKYoyE7gZ6KMoyg8URXEApcBfFEV5CHio6TqqqhYBvwMeURTl98A/VFU9Grfouzlv/k6Ac7sTz8dgMJB9w81gMlH+4jKigUCb+/EdPECwpATXhIlY0tLaHa8QQggh2qfFKUVVVTfTuGbr4x5t5v5lwLIOxpUQ6nbuAJMJ57hxzd5ny8khbf5Cqle/SdWbK8lc+oU29VO9rqnQ6XwpBSGEEELoQbaq6SRQUkKwqJDkS0dhSkpu8f6MKz+POT2d6jVvESwtbX0/xUX4Dh7AoQzDPjC3AxELIYQQor0k4dLJ2aN8XBMmtup+o81G1rXXo4XDlL/wHJqmNXu/Fo0SKCnhzPJXARndEkIIIfTU3rIQogM0TcOzawcGqxVnGwqQOsflkTRiJL6DB/Du3oUrb+K59sJVlfgLCvCfKMBf8BGBkyeI+hsPArD2ySF51Oi4fC1CCCGEaJkkXDoIFhUSKi3FOT4Po93e6ucaF9DfxMkf/4CKf71I8PRp/AUf4S8oIOKp+/iNWHv3wZ47CPugQTjzJkqhUyGEEEJHknDpoG5n03TixAvvTrwQa6/ejbW0Vr5O5YrXADCnZ+Acn4c99yLsgwZhG5grhU2FEEKILkQSrk6maRreXTsx2OwkX9q+ab6MKz6HOS0dc2oq9txBmN3uGEcphBBCiFiShKuT+QsKCJ2pwDVpMkartV1tGMxmUmfOim1gQgghhIgbWdjTyby72j+dKIQQQojuSRKuTqRFo3jyd2JMSiJ5xEi9wxFCCCFEJ5GEqxM1HDtKuLoa57jxGMwymyuEEEIkCkm4OpFnV8tnJwohhBCi55GEq5NokQje/F2YnC6Shg3XOxwhhBBCdCJJuDpJwxGViKcOZ94EDCaT3uEIIYQQohNJwtVJ6nZuB1p/dqIQQggheg5JuDqBFg7j3bMbU2oqjqEX6x2OEEIIITqZJFydoP7Dg0Tr63HlTZAzDYUQQogEJD/9O4FXdicKIYQQCU0SrjjznzyBZ08+5owM7BcN1jscIYQQQuhAEq448p86SdHvf4sWDJL1hWswGAx6hySEEEIIHUjCFSeBwlMU/f43RBt89Lr1djk7UQghhEhgknDFQaCwkMLf/4aoz0evW/8H99RpeockhBBCCB1JwhVjgaLCxpEtr5det9yGe+p0vUMSQgghhM4k4YqhQHERRb/7DRGvpzHZmjZD75CEEEII0QVIwhUjgeJiin73/4h4PWR/+Vbc02fqHZIQQgghughJuGIgUNKUbHk8ZN98K6kzZukdkhBCCCG6EEm4OihQUtKUbNWRfdOXSZ05S++QhEtVM4oAACAASURBVBBCCNHFSMLVAcHTJRT97tdE6urIvvFmUmfN0TskIYQQQnRBknC1U+hMBYW/+w2RujqybriJ1Nlz9Q5JCCGEEF2UJFztoEWjlD75BJHaGrKuuZ60OfP0DkkIIYQQXZgkXO1Q8/Y6Go4ewTluPKnzF+gdjhBCCCG6OEm42ih4uoQzr/0Hk8tF9k23yPmIQgghhGiRJFxtoEUilP7zH2ihENk33YI5JUXvkIQQQgjRDUjC1QbVa97CX/ARrkmX4Rqfp3c4QgghhOgmJOFqpUBhIWdWvIbJnUr29TfpHY4QQgghuhFJuFpBC4cp/ecTEInQ65bbMDmdeockhBBCiG5EEq5WqFz1BoHCU6RMm4Fz1Gi9wxFCCCFENyMJVwv8JwqoWvUG5vQMsq69Xu9whBBCCNENScLVjGgo2DiVGI3S+7bbMTkceockhBBCiG5IEq5mVC5/jWBJCe7Zc0kafone4fRY/7+9+46P7Krv//+a3jSSZtTrSlpp72p7X/feGxiIIfCNwaaHJJSQfIEAMSUEAgS+v4RACNVgCJhmY4Mbxt3e3stRW/UyqqOpmnZ/f8ysvH1XuxqV1ef5eOgxM3fu3Dmj1T3z3nNPafO385NDv2Q8FpjtogghhBBZYZ7tAsxVkZZmRp96AktRMUVvuWe2i3PRiiQifG/fT/HHxukLDfCRte/HarLOdrGEEEKIaXXWwKVpWinwRWC1UmpjZpsd+BrQAzQAX1ZKNWWe+z/AWiAJtCql/jtLZc+a1MQE/T/4HgCl978Xo802yyW6eP2u5Q/4Y+MU2D10jHfxowM/5z0r/wqjQRpfhRBCXDzO5VvtCuAR4Ng1bD4CdCql/hX4BvB9AE3TKoGPAx9XSv0j8B5N0xqmt8jn5+VnHmfPo48SPnyIWF8vyXAYXddPue/Qrx8m7hvAc9PNOBrmRPEvSs2jrbzUu4VyVymf2vQxluQvZs/QAX7T8thsF00IIYSYVmdt4VJK/UrTtGtO2Hw78KnM8/s0TVutaVoucDOwQyl1NMm8CtwKNJ/tfYqK3FMp95TEY3HyfvUrggmd4DHbjVYrlvx8rJ789K3Xg9FqZezZZ3BUVrL0Pe/EaJXLW9kQS8T4xdbfYsDAhy69l6qCQj5Z8Nd85k9f489dL7GosIzbllw328UU4qyyWXcJIeaOCz3Xz7cPVzFwbA/n8cy2020/q8HB7HaY3nHNzUSGX8UVj1OWymGxsRBjMELS7yfQ0grJ5Os7G40UvfN+hv0TwERWy7VQPdL6R/qCPq6tuoL8VOHkv//7lr+Tr+74T36861dYE05WFy2f5ZIKcXpFRe6s111CiNl34rl+PuHrfAOXDzj23XIz23xA/QnbW87zPabVPXe/hc/+pIRg6Q6MHh92U5C/WHIXm0vXg66TCodJ+P0k/GOYcnKwVy+a7SJftLoCPTzT+TwFdg931t1y3HMFDi8fXHUf39z5HX544Gd8dN0HWJRbNUslFUIIIabH+fZMfhy4FEDTtJXAHqXUOPAksF7TtKP9vS4F/njBpZwGDpuZv3njZiaa15I7vBHQ+cmhX/LdfQ8STIQx5eRgq6jAtWz5GcOWrut0jHfxm5bH+MbOb/NSz2uk9NTMfZB5LplK8tDhX5HSU/yl9mZspxiRuCi3ivtXvINEKsG39/6Q4cjILJRUCCGEmD6G03UcP0rTtKuBe4FbgG8DX8889TWgj3SL1pdOGKW4gfQoxaZzHKWoz0SzfFGRm3/5/mu8dnCAN1xbwhHLizSPtZFjcfGXS9/MmqIVpy6crtMb6mfnwB62+/YwFBk+7vlFuVW8bcndVOdWZv0zzHdPdzzH71r/wObS9dy77K1n3Pe57pd5uOkRSp3F/P36v8Zpcc5QKYU4N3JJUYiF4RSXFA1n2P2Uzhq4ZsiMBa7WjmE+/T9biCdSfO7+DewP7uSR1j+SSCXYXLqev1hyFw5zekb5gfAgOwZ2s8O3l/7QAABWo4VVRctZV7yaipxSHm19gh2+PRgwcGXFJdxZd7MEg9PwhQf50tZvYDfZ+cwlH8d1Dr+nXzf/nme7XqQhv46/WfMezEaZOk7MHRK4hFgYJHBN0dFf2Cv7+/jeY4dYUevlo/espj/s48GD/0tnoAePLZ9Lytazf+gQXcFeAMxGMysKlrKueDUrChtPugx2eKSZXzY9wkDYR47Fxd31t7O5dD0Gw5T/PS5auq7z/3b9N81jbdy//B2sLzm3RcBTeorv7f8pewb3s6l0Hfc2vlV+r2LOkMAlxMIwHYHL9MADD0xnmc7XA+FwLOtv4nLZCIdjVBbl0No7zoEjI5R4nTRWlHJp2UYMBiMHhg/TPNZGKB5meYHGrbU38I6lb2Fz2XrKc0oxG00nHbfQUcDl5ZuwGa2o0WZ2De5DjbZQnVtJrlWGjAO80ruV53teYWXhMu6su/mcQ5PBYGBlYSNqtIUDw4cBWOJZnM2iCnHOjtYpQoiL24nnustl+9xUj7EgW7gABscifOb7W7CaTXzxvZvJdaZbrXqCffSHBljqXXJOl7xONBId5VfNv2fP4H6MBiNXV17G7bU34TDbp/WzzCdjE36+uOXr6Dp85pK/J9+WN+VjBGJBvrr9PxmOjvCOpW/hsvJNWSipEFMjLVxCLAzSwjVFxyZUl92C1WxkZ/MQ/uAE67X0dGG5VjflOaVYTZbzeg+H2cH6ktXU5FbR5u/g4LBiS992EqkkKT2Fy+JaUP2QdF3nJwd/QXewj7csuQvNU3/2F52CzWRlmXcJ23272enbS5GjkIqcsmkurRBTIy1cQiwM09HCtXC++U/hhg1VbDk0wKsHBrhkeSkr6wqm7djLC5by6U2LebrzOZ7q+DOPtj0BgAED5Tml1ORWUZNbTU1uNaWu4ot27cBdg/vYM3SA+vxaLr/AVqkSVzF/s+Y9/H+7vsuDh36B2WhmbfHKaSqpEEIIkT0L9pLiUZ0DAb7w4+3k59j4wns2YbdOfwYdjwVoGTtC+3gn7f4uOgPdxFPxyeftJhvVuVXU5FaxJH8xS70Nc7ZjeG+wnxd7XsNgMJBrzSHX6saduT16/2gLXige5gtbvkYkEeVTmz5KibNoWspwxN/Bf+z+H+KpBO9beS8rC5dNy3GFmCq5pCjEwiCjFKfodJXjr59v5fFXO7hxQxV/eUP2F6tOppL0hvppH+/kiL+T9vEuBsK+yecXuau4c/HNLPXMneA1Eh3l8ban2dK/A50z/804zQ5yrW5SegpfZIg31N3KTTXXTmt5WsaO8K3d3yOlp/jAqvtoLFgyrccX4lxI4BJiYZDANUWnqxzjiSSf/cE2fCNhPnXvehaXT71T94UKxyN0jHfxct9Wdvn2AtCQX8ddi2+hLq/mvI4ZTUxwaKQJi9GM5qnHch790oLxEE+2P8sLPa+SSCUod5VyR93NeO35jMeCjMcCBGKBzG2Q8YkA4/EggYkAoUSY2txqPrrug5hOMbrzQh0eaebbe3+YXgB79f00yOhFMcMkcAmxMEjgmqIzVY6qc5Sv/GwXlUUuPvuujZhNs9enqivQw+/bnpycBmFFwVLuqLuFKnf5WV8bS8bYP3yYnQN72D98ePLSpc1kZUVBI2uKV7LMq2E32854nIlkjD93vcjTHc8TTUbx2PK5s+5mNpauPef+ZolUApPBlNVWuv1Dh/juvgcxGU387Zr3nHc4FeJ8SOASYmGQwDVFZ6scf/zEYZ7f3cvdV9Vx52U1WS/P2bSMHeHR1ido9R8BYH3xam6vvZESV/Fx+8WScQ6OKHYO7GHf0EFimZBV4ixiXfEqYqk4u337GY6m1yS0GM00ejXWFK1gZWHjcTPjJ1NJXu7dyh/bn2E8FsBlcXJLzfVcWXEpljk6unL34H6+v/+nWI1W/m7te2WxazFjJHAJsTBI4Jqis1WO4Wicf/reFkKROP/0VxtYVDr7k5bqus6hkSZ+3/YEnYEeDBi4pGwDNy26hv6Qj52+vewdOsBEMj1ctdBRwPri1awvWU25q3SydUnXdbqDfewZ3Meuwf2TSxUZDUY0Tz1rilZgNVn5w5GnGYwMYzVZub7qSq6vvnpezCG2fWA3PzrwcxxmOx9e+34qz6E1UIgLJYFLiIVBAtcUnUvluLd1mG8+vIcSj4PPvmsjDtvcaNXRdZ09g/v5/ZGnJsPSUQV2D+uKV7OuZBVVORXndAmvP+Rj9+B+dg/uoyvQM7ndaDByRfkl3Fp7/bybJf+1vu385NAvybG4+Mi6D1DmKpntIomLnAQuIRYGCVxTdK6V48N/buGPWzq5ZFkJ771z2ZwZKQjptQW39e9ia/9OKnLKWF+ymmp35QWVcTgywu7B/fgnxrmi4hKKnYXTWOKZ9WLPa/yv+g15VjcfWfcBiqdpKgohTkUClxALgwSuKTrXyjGRTPGVh3bS2jvOfbcu5crVcnlqPvlz10v8qvlRLEYzywsaWVe86pSLjgtxoSRwCbEwTEfgmhvXy+YYs8nI++9azgM/3MZDTzdRV55LRVHObBdLnKNrq67AZrLyTOfz7B7cx+7BfViNFlYUNrKueDXLC5ae99JNQgghxPmQFq4z2KEG+dZv91Fe6OIz79yAzTL9c0mJ7NF1nd5QPzsH9rDDt4fByDAAVpOVVYXLWFe8mmXeJec1P5kQIC1cQiwUcklxis6ncnzo6Sb+tKObK1eVcd9tjVkqmTgXKV1nIpY8r4EM6VGavez07WXnwB6GMlNk2E02VhYuQ/PU0+Cpo8DunVN99sTcJoFLiIVBAtcUnU/lGE+k+NJPdtAxEOC9dy7j0uWlWSrdwhVPJGnp9uMPxwiE4wTCcYKROIHM46P3g5E4ug7La72865alFOSd33QVuq7TGehOhy/fXkaio5PP5dvyqM+vpT6/job8WkqcxRLAxGlJ4BJiYZDANUXnWzkOjIb53A+3oQP//K6NlHqdZ32NODetPX5+8IdD9A2HT7uPy27G7bSS47SQSKRo7w9gs5q459p6rl5TjvECApGu6/QE+2gZO0LzWBstY20E46HJ53Msrkz4qqM+v5bynNJznmlfXPwkcAmxMEjgmqILqRy3HBzgvx89QHVxDv9073osZunPdSFi8SS/e/EIT27rBB2uXF3GotJc3A4LbqeFHKcVt8OCy2HGZHw94Oi6zsv7+vn5n5qJTCRYWp3Pu25rpDjfMS3l0nWdgfDgZPhqGTvC2IR/8nmr0UKlu5wqdyXV7gqq3BWUOouzslakmPskcAmxMEjgmqILrRx/9MfDvLCnl+vWVfB/btKmsWQLS0u3n+//4RADI2GKPQ7uv62RJVX5UzrGaGCCnzyp2N0yhNVi5C1XL+a69ZUX1Np1KrquMxwdoXk0Hb46A930hQbQef28sRgtVOaUUeWuoMpdSZW7gnJXiYSwBUAClxALgwSuKbrQynEinuSLD26nZzDEX79xBRuWFp/9RWLSRDzJb19o4+ltXQDcuLGKu6+qO+/Rn7qu89rBAX72dBOhaIIllXncd1sjJVm+5BtLxugJ9tEV6KEz0ENXoIfeUD8pPTW5T4HdwwdW3Ud5jvT5u5hJ4BJiYZDANUXTUTn2DIX4wo+3YTIaeeC+jRRN06Wsi11z9xg/ePwQA6MRSjwO7r+9kYbKqbVqnY4/OMFPn2piR9MgVrORN11Vxw0bqjAaZ66zezwZpzfUT2eghzZ/O1v7d+Iw23nfyneyxLN4xsohZpYELiEWhukIXKYHHnhgOst0vh4Ih2NZfxOXy8aFvk+u00p+jo1th3209oyzcWkxFrN0oj6diXiSh//cyoNPKELRBDdtrOKDb1xBsWf6WqHsVjMblxZTXujiQPsoO5uHONA+QkNlHm7nzMwubzKayLflsSi3konBImIhBwN6K9v7d1HkLJSWrovUdNQpQoi578Rz3eWyfW6qx5AWrvOg6zrfe+wgrx4YwGQ00LjIw9qGQtY0FOFx26ahpPPfRDzJwfYRfvFsC77RCCVeJ+++rZH6yrysvu94OMbPnm5i6yEfZlO6teumjTPX2vXyvj6+//ghAIy5w9iX7EI3Jril8mbuaLhOppi4yEgLlxALg1xSnKLprBwn4kme2tbFDuWjcyA4ub22LJd1S9Lhq7zAuWC+YFO6TtdAkAPtIxw4MkJzt59EMoXBADdvrOaNV9ZincGZ+ncoHw8+qQiE49RX5vHuGejbtfVQeiSr02bmLdcsZn/bCHt62zDXb8dgncAdXsLt1beyQSs5r8lbxdwjgUuIhUEC1xRlq3Ic8kfY3TzEruYhVOcYqczvtMTjYG1DEWuXFLK4PG9G+xQlkil6h0K09wcwGKC8wEVZgQunffq+6EfGoxw4MsKB9hEOto8SjMQnn6sqzmF5rZfNjSUsKnVP23tOxXg4xk+famL7YR9Ws5E3X7OY67MwkhFgd8sQ3/rNPixmI//wl2upLcsFIBiJ88LBVp4c+jUJi5/kSAl0rmFdfSmXrSilscaDyWgkpetEJxKEownCEwkix9w/+tjrtlNXnktpgfOkz5DSU7SPd7Fv6CBJPckN1VeTa52d3/tCIoFLiIVBAtcUzUTlGIzE2dc6zM7mQfa3jTARTwKQ67SwJnPZcXmNZ1rn8UqldPqGQxzpC9DeP057f4DOgSCJZOqkffNyrJnw5aSswEV5gZOyQhd5Lutka5yu68TiKYKR+Ek/oUicseAEqmvsuMlK83OsLK/1srzGS2ONlzzXzPSdOhdbDw3w06eaCEbiLKnK5/7bp2/eLoCD7SN88+G9GA3wsbeuOeUUF+F4hG/t+hHtwSMYI15Ch9ZAworDlv47iEwkz/n9HDYzdeW5LCp1YPGOMEIHh8fUcRO22k127qi7iasqLpXpKbJIApcQC4MErima6coxnkhysH2UnU2D7GkZYjycbgGyWUysqPOytqGQVYsLyXGc++LJ4WicgdEI/cNh2vvTAatjIEAs/nq4MhkNVBS5qCnNpabUDQboGwrTNxyibzjE8PjEScd12sx43DZC0TjBSOKUYe1YNosJrTqf5TVeltV65/zlU38oxoNPHGZX8xA2i4m/uHYx16ytuODWrubuMb7+i92kUjoffstqltd6T7tvPJXgp4d+yfaB3XgsXhZFbqCtPYHVbMRhM+O0mXHazae8b7eZ8I1GONTbR1ugmZCtB2PuMAZj+t/JkLDh0atZkqeR70nx/MCfiSQilLtKuWfJG2nw1F3Q5xSnJoFLiIVBAtcUzWblmErptPWOs7N5kF1NgwyMRgAwGgxo1fmsbShkbUMRBXl2orEEAyMRBkbDDIxG8I2kbwdGwwTC8eOOazBARWEmXJW5qSnNparYdcYWtGgsQf9ImL6hML3DIfqG02HMH4zhtJvJcVjIcVrSt3bLcY9dDgtuh4XyQhdm0/wanXnivF2Nizzcd9tSCvPOr7WrvX+cr/58FxOxFB960wrWNhSd9TUpPcWjrU/wdOdzuC05fHD1fSzKrSKejBNORIkkIkQSkWPup2+D8RDNo610Bnomj+W1FJGXrCI2XEhPp2WylcxoMHDblaWEPPt4rW87ABtL1nJ3/e3k2XLP67OKU5PAJcTCIIFriuZK5ajrOn3DYXY1D7KzaYgjfeOTz+U4LMf1hTrKaDBQmG+nxOOkxOOgxOtkUYmbqpKc8544dKEaDUzw4ycOs7d1GJvVxFuvrefylWVTmt6jezDIVx7aSTia4H13LWfzspIpleH57ld4uOkRDAYDRoORRCpx1teYDCYa8utYWbiMlYWNFDheb01L6ToDI2Gau/088tIRRgMTLK/xcNM1uTze9RhdgR7sJhu3197I1ZWXy2XGaTLbdUoimWLYH6XI48hK30QhRJoErima7crxdEYDE+xuGWJX0yC+0QhF+XaKvU5KPE5KvQ5KPE4K8uzzrkVpLnt9TcYmIhNJHDYz6xoK2dhYwrIazxl/1wMjYb780E78oRj33bqUK1eXn1cZ9gwe4In2ZzAYjDjNDhxmOw6z44T7dhyW9OMyVwkO89lb4wLhGN9//BB7W4fJc1l59x1LGbU282jrE4QTEcpcJbx1yRtpkAlZL9hs1Sl9wyFe3NvHK/v6GA/H8bhtrGsoYr1WRENV3nHrj4oLo+s6w+NRugaCdPqCdA4EGBmf4IpVZVy77sK7JYj5QQLXFM3VwCVmz8h4lKe2dbHtsI/RQLpvm8tuZt2SIjY2FrO0+vjwNeSP8OWHdjIyPsHbb2jghg1Vs1X0M0rpOk9t7eLXz7eSSunccVkN120q4vH2J3mldxs6OhtK1nB99VVU5VTM6f53s6V/JEwqpVNe6DrtPjNZp0zEk2w/7OPFPb00dacXVM9xWFhSlY/qHCUUTbeSup0W1jYUsl4rpnHRmf/zII53dHR350CQTl+AroEgXb4g4YnjW6ANBtB10Kryue+2pdM6kbOYmyRwTZEELnE6KV2nrWecrYcH2H7Yx1gwPaNwjsPCeq2IjUuLKfU6+bef78I3GuHNV9dx+6U1s1voc9Da6+c7vzvA8HiUJVX5vP+u5YzrPn6hfkdHIL2mZamrhM0l69hYuhaPfXqWW5rPdF3nuV09/OyZZpIpncZFHm7cUMWq+oKTWjNmok7p6A/wwp5eXjvYP9lPb3mNhytXl7O2oQiL2UgimUJ1jbFDDbKzaZDxUPrv12Ezs6a+kPVaEStqvTM6F958Eo0l+N8/NfPyvn6Sqde/Ew1AsddJdXEO1SU5VBW7qS7JwQA8+KRiV/NQesqZqxdz/YbsTDkj5gYJXFMkgUuci5Su09LtZ9shH9uVD3/my+vo/2rvuGwRb7pq/lyOC0Xj/OgPh9nRNEiOw8J77mhkRZ2XfUOH2Nq/k/1DB0noSQwYaMivY1PpOtYUr8Rhts920WfcRCzJg08e5tUDA+Q4LFQWuTjcOQZAscfBDesruXxl2eTEtdmqUwLhGNsO+3hhT+/kxMoet40rVpZxxaqyM67hmkrptPT42a587GwaZCQzKtlmMVFfmUddWS615bnUleeSO0NLX81lHf0BvvPoAQZGwpR4nTRW51NV4qa6OIfKohxs1lOHVF3X2XrIx0NPp6ecqa/M4/7bGinN8gTLYnZI4JoiCVxiqlIpnaauMbYd9rGndYjNy0p4y9WL590lOF3XeXZnD794tplEUueWzdW86ao6zCYj4XiYnb69bO3fSau/HQCL0cLqouVsKl3HUk/Dguhk3z8S5lu/3UfPYIi68lw++IYVFOTZ6fIFeWZ7F68eGCCRTOGwmbhyVTnXr69kWUPxBdcpqZROz1CI1h4/rT1+WnrHGRhJz3FnNBhYXV/AVavLWVHnnXLfLF3Xae8PsF352NU0RP9I+LjnC/PSk+nWlqUDWHWJe8EMwtF1nWe2d/Pwcy0kkjo3b6rizVcvnvIl2PFQjJ8+nZ5g2WI2cveVM7ucmJgZErimSAKXWOg6+gN8+5H9+EYj1JXncvsli1hW6538kh2KjLCtfydb+3fiiwwB4LbksLZ4JasKl1PvqcNinLlliXyjYZyZqUmyafthHz/4wyGisSTXr6vkrdfXn/TFOx6O8fyuHp7d2YM/FMNggEtWlHH1qjIaKvPOOYSHonFae8ZpyQSsI33jRGOvT3zrsJmoK89j2SIPl60oJS9n+tZnDUbitPWOc6RvfPL22FHRRoOByiIXVcU55LtteNw2PDm2yfu5TmvWgsSQP8KvnmulZzBEQ1U+yxZ5aKzx4LJP/799IBzjB48fYk/rMG6nhXffvoxViwsu6JjbD/v4yVPp5cTqynO5/7bGM/b/E/OLBK4pksAlBEQmEjz4pGLLwQEArGYjy2u9rGkoZHV9IblOa7plZLyLrf072eHbTSiebhmxm2w0FmisKlzG8oKlJCZMHOoc5XDHKIc7xghG4iyr9bK2vpCViwumHJR0XafLF2S78rFDDdI3HMZmNXHX5TXcuKFq2juAJ5Ipfv18K09u7cJqMfKuW5ZyyfLSs75m2yEfT23voqM/XZ8UexzYrSZ0PX3ZWUcHncllvlI6oOskkukRb8cqK3CyuDyPxRW51FfkUVbomrG+QLquMzgWoe2YANbRf+pVKiAdyPJyrJNBrDDfzuUryqgszjnvMsTiSZ7Y0snjr3UQT6QwmwwkkunfmwGoKXOzrMbLskUe6ivzLniVjsMdo3z39wcYC8ZYVuPhPXcsI3+aQm0gHOOhp5vYesiH2WTkDVfUcMvmahk1OoNGAxPEk6lpXU0EJHBNmQQuIdJ0XedIX4CdTYPsah6cXKbJYICGijzWZNYALfE4SaaStPrb2Td0kN2+A4xMjGQOYiAZyCc1VkxytBg7uTht5smVDI4ea3V9IUtqneTk6ATjYYLxENFElEW5lZQ4iwE40hdgh0r3mRscSwcSi9nI8hovLT1+gpE4pV4nb7+xgRW1F9YScdRYcILv/G4/Td1+Sr1OPnT3CiqKzj046LrOUCjOL59WHGwfQdfBYDBgyHx2g8GQviV9H0M6sLwesPKoK8/NeuvdVCWSKYbHo4wFJhgNTDAaTN+OBWOT28aCE8d1Ll9ZV8Btl1SzpCr/nFv6dF1nd8sQP3+mmSF/lDyXlXuurWdjYzHt/QEOZtZobe3xT76XxWxkSWUey2q8NNZ4qCzKOecQnkyleOSldh5/pR2j0cDdV9Vxy+bqrITbnU2DPPikYjwUw2U3U5XpD1ZVnENVSQ7lBS4ZwDDNUimdp7Z18dsX28jPsfKVD1w2rcefE4FL07TXgKP/ZUsqpa7XNM0LfBloAxqATymlBs5wGAlcQsyi/pH0RLy7modo7fZztFaoKHSxpqGQeCLFoY5Run0BsIcweXyYPT4MrrF0ogBKnMXU5FYxGg4xGPQTmAgSJwrmOKf7TrPpOSTHCggNeUn5C7CZbaxeXMB6rZiVdV7sVjPBSJzfvdjGn3f1oOuwfkkRb72+/rxXCABQnaN8k3txLQAAHLpJREFU+5EDjIdibFhazH23Lp3sCD8VC7VOSek6wXCc1l4/T27pnJymorYsl9suqWZtQ9EZLz0OjIT52TPN7GsbxmQ0cMOGSu66vPaU/wbRWIKmLn8mgI3QPfj6mqEmo4FSr5OKIhcVhS4qi3KoKHJRmH/8RLDD/ij//fsDtHT7Kcyz8/67lrO4Im8afyMnC0bi/PaFNg62j+AbjXDsN63BAKVeZzqAZX6qS9zT1tK20HQPBvnhHw5xpC+A22nhvlsbWdNQOK3vMVcC1wNKqQdO2PYd4Fml1C81TbsTuEcp9VdnOIwELiHmCH8oxp6WIXY3D3GgfYR4In15yWwy0lCZx9LqfBoXeakpcxNKhDgwfIi9Qwc5PNJMPJXuD2TAgMvixGFyQsJCJGwiMA6JmAUSFgy6CXJGMOUNYzAffY2RutxFLC/UWFagUZFThtHweutF50CAh55uornbj8Vs5PZLFnHL5uoptRSMBiZ4ZX8fv33hCAYD/MW19dy4ofK8B0FInZLW0uPnj691sLt5CB0o8Tq5ZVMVl60oPe4SYDSW4LFXOnhqWyeJZHrKjbffuISKKfR18gcnONQxiuoao3swSM9g6Lg+cABWi5GKQhcVhTl4c208s72b8ESCjUuLeectGs4s9As7k4lYku6h9Jxe3b7M7WDwpEXrSzwOtGoPS6vz0ao9eNzzM4DFE0lSOlkfgJFIpnjslXYef7WDZErn0uUlvO36BtxZGH07VwLXr4GtgAPYppR6XNO0LuAypVRXprWrRSl1+lV9JXAJMSdNxJIc7hzFZjGxuCL3jP1nYskYoxN+XBYnTrPjuLAE6Ur4cOcYu5uHaOnxU1PqZp1WiMsbQo02cXCkiY7xrnT/J8BtzWGZV2NRbhUeWx759jzyrXnsbwry8HOt+EMxCvPs/OUNDaypLzwpNEVjCTr6A7T1pvsntfWNT05um59j5YNvXEFD5YXNOyZ1yvH6hkM8saWTVw/0k0jq5Lqs3LihkmvXVrD/yAi/eLaF0cAE3lwbb7uugfVa0QWP+D06E3zPYIieodBkCOsbDk32BbOajbz9xiVcuapszoww1nWdYX+UrkwAa+sbp7l77LgQNt8CWGQiwTPbu3hiaxfJZIorVpVx06bqae9PBdDWO84P/3iInsEQHreNe2/WWF0/va1ax5orgWuTUmqrpmkm4AXgk8DTQIlSakzTNDMQByxKqdMtGDcnOpIJIWbX+ESQfQOH2N13kN39B/FHx0/ax2I043Hkk4jYGBzUSU3YqfIUcuPq5ViiRTR3+WnqHKWzf5xjuhmR77ahVXvQFnm4cdMi8uf4l9d8NuyP8PsX2/jjq+2EowlMRgPJlI7ZZOTN19bzlusasJ/HJdypSCRT9A2F6BoIUFeRR2nB3B8xmEymaOv1s69lmH2tQxxoGyZyzCz3FUUultUW4LCbSaV0kik9fZvUSaZSpFLpvmpHt+e7bTTWeGms9VJW4Mpa2IzGEvzh5XZ+9WwzgXAMt9OK3WZicDSC0QCXriznTdfWs6TaMy3v9dATh3n0hVZSOtx6aQ3vumPZjLdaMtmZYgovmM5O85qmfRmIAO9BWriEEBcgpafoCfYzEPYxGh1jbMLP6IR/8v547ORzOekvIN7RiCWRS02pOzPBZ3qyT2+ubdq/cKROObNwNMHzu3t4cW8fZQVO7rmunhJZBuecJVMpOgeCqM4xDneO0tQ1dtLl03OV67JSX5FHfUUeDZV5LCp1X/Co33gixQt7ennslXb8oRgOm5lbNlVxw4YqLGYj25WPJ7Z0Tk7eu6Qqn1s2V7Nq8cmrNpyLwx2j/OiPh/GNRSjOd/CuW5eydNGFh7hzMestXJqmLQUuV0p9P/P418BvgCuRPlxCiCxKpBKMTYwzGh1jV3sXe4b3MGbsxoiRayov57a6G7M+W77UKWImJVMp+obCJFM6RqMBowGMRgMmoyFza5zcZjQaGByL0Nztp6XbT0uPf/KSOqT7ZNaWuamvzGNxeR5lBU4K8xxYzGcPYYlkilf29/Poy0cYGZ/AZjFx48ZKbt5UfdK8abquc6hjlCe2dLL/SHqEc1mBk5s3VXPp8tJTvl8imcIfjDEamGAkEGU0MEFHf4DXDg5gMMDNG6t5w5W1MzpJ71wIXOXAt4CdQC5gAT4G5ANfATqAxcAnZJSiECKbdF1n//AhHm56lOHoCHlWN2+sv52NJWuzdilF6hQxXxzt69bS7ae5x09rt5+uwSDHRgCDAQpy7ZR4HBR7nZR4nJR4HJR4nRTm2TEaDLx2sJ9HXjrC4FgUi9nIdesquPWSRee0TFSXL8iTWzvZcnCAZEonz2Xl0hWlxBOp9BQkgSgjgQnGg7FT9jOqKHJx362N1JXnTt8v5hzNeuCaRhK4hBDTIpaM86fO53my41niqQSL82q4Z8kbqXSXT/t7SZ0i5rPIRIK23nHa+8cZGI3gGwkzMBqZXD/2WEaDAYfNRCjTJ+/qNeXcfmnNeXXkHxmP8sz2bp7b3XPcJVKzyZCeVNdtx3t0pYOjj3NtVBWf+7xr000C1xRJ5SjEwjEcGeHXLY+xZ3A/BgxcWXEpd9bdhNMyfX2IpE4RF6PIRALfaISB0fDk7cBohNHxKMtqvNx5ec0FzYN3VDiaoK3Pj9thxZNrw+2wzJlRpCeSwDVFUjkKsfAcHFY83PwIvvAQORYXd9XdwlJvAw6zHbvZftL0FVORrTplKDLCaHQUi8mCxXj0x4zFZMFqtGA2mi+o3EKIqZHANUUSuIRYmBKpBH/ueok/tD9DLHn85RKbyYrD7MButuMw2XGY7ZNhzGVxkmt1k2vNydy6cVvdOMx2DAbDtNYpfaEBdvv2sWtwHz3BvrPubzaasRgtuC0urqu+ksvKNmEyynIxQmSDBK4pksAlxMI2NuHnua6X8cfGiSSiRDM/kUSUSDJ9m9JPvXDzscxGM7lWN15nHg6jkzxbLqXOYspcJZS5Ssi1us96aUTXdbqDfewe3Mdu3z76wz4ATAYTmreeancl8VSceDJBIhUnlooTTyWIJ+Pp7akE8VScwfAQsVScMlcJb6q/g2UF2rT8roQQr5PANUUSuIQQZ6LrOvFUPB3AElGC8RCBWJDxWCD9MxEgEA8wPpHZFg+QTJ08L5LD7KDMlQ5gpa4SypwllLqKybPl0jHePRmyhqLpYfIWo5llXo01xStZUdCI03Lu/WP8EwEeP/Ikr/RuQ0dnmVfj7vrbKc8pnbbfixALnQSuKZLAJYSYToWFOXT0+RiJjjEQGqAv7KM/NEBfaIDByPBJrWVmg4mEng5oNpOVFQWNrCleyTKvht18YTPf9wT7+HXz71GjLRgwcHnFZu6ovQm3NeeCjiuEkMA1ZRK4hBDT6Ux1SjyVYDA8RF9o4LgQVpFTxpqiFTR6l2AxTe9yJLquc2D4ML9peZyBsA+7ycbNNddxbeUV0/5eQiwkErimSAKXEGI6zdU6JZlK8lLvFh4/8hSheJgCu4c3LL6NdcWrZnzYfTKVpDfUj9fuwTWNU3IIMZMkcE3RXK0chRDz01yvU8LxME+0P8tz3S+T1JMUOwvZXLqBzaXr8Njzs/KesWScjvFOWsaO0DJ2hDZ/O7FUHIvRwuay9VxXeQUlruKsvLcQ2SKBa4rmeuUohJhf5kudMhge5vEjT7N7cC/xVAIDBjRPPZvL1rOmaAVW09mXZTmdaCLKEX8nLWNtNI+10THeNdlPDaDcVcqi3CqaRlsYjo4CsKKgkeuqrmSJZ/GcnehSiGNJ4Jqi+VI5CiHmh/lWp0QSEXYO7OW1/h20+dsBsJtsrC1exSVlG1icV3PaABRLxhmKDOMLD+ILDzEQGaQ32E93sHdycIABA5Xuchry66jPr2Vxfi05FheQvrS4d+ggz3a9QJu/A4CKnDKur7qK9SWrMRvN2f8FCHGeJHBN0XyrHIUQc9t8rlN84UG29O9kS98ORifGACi0e9lctp5qdyWDkWF84aF0wIoMMRodQz9hSWGjwcgidxX1+bU0eOqoy1uEw3z2KS2O+Dt4tutFdvn2oaOTZ3VzVeXlXFGxeTKgCTGXSOCaovlcOQoh5p6LoU5J6SmaR9t4rX87u337iKXiJ+2TZ82l2FlIsbOIYmchJc4iih2FFDi8F9QyNRwZ4bnul3mldxvRZBSL0cLqouWUOospcHgpdBRQ6PDituTIpUcxqyRwTdHFUDkKIeaOi61OiSai7B7cz9iEnyJHOmAVOQoueI6ws4kkorzat43nul6a7Od1LKvRkglgXgrtBZP3K3PKybflSRgTWSeBa4outspRCDG7pE6ZXik9xWBkmOHICEOREYai6fvDkREGIyNEk9GTXpNjcVHlrpj8qXZXUGD3njGERRIR+kID9AXT86P1hvrpCw0wkZyg2l1Jbd4ianKrqc2rJtfqzuZHFvPEdAQu6aUohBBiTjAajJQ4iyhxFp30nK7rhBMRhiLDDEdH8YUH6Qr00hXo4dBIE4dGmib3dZgdmQBWTlVOBfFUgr5MqOoLDTA24T/p+B5bPvm2fFrGjtA81ja5vcDuyYSvdAirdJdjkQ7+4jxIC5cQQpwnqVPmhlA8TFeg57gfX2TolPvm2/ImFxkvc5Vmbouxm+1AuvWrY7ybI/5O2sc7ODLeSSgenny92WCi0l1BZU4Z5TllVOSUUe4qndL6l2L+kUuKUySVoxBiOkmdMndFElG6A710B3uxGM2U55RS6iyZcjDSdZ3ByDDt452TIaw72HfSOpn5tjzKc0qpcJWlb3PKKHEWyXQXFwkJXFMklaMQYjpJnbIwxZNx+sOD9Ab76An10RvspzfYjz82ftx+RoORxXk1XFa+ibVFK2U9y3lM+nAJIYQQM8xisqT7h7nLj9sejIfoC/bTE+ynN9RHd6CP5swM/A+bH2FT6TouL99MeU7pLJVczCZp4RJCiPMkdYo4G194iFf7tvFq3zYCsSAAtbnVXFa+iXXFq7M+5YaYHnJJcYqkchRCTCepU8S5SqaS7Bs+xMu9Wzg03ISOjt1kY33JGi4v30S1u1LmE5vDJHBNkVSOQojpJHWKOB8j0VFe7d3Gq33bJ5dVKnEWUewsosDuwWv3TN567R5cFqeEsVkmfbiEEEKIecZr93B73U3cWnsDh0aaeLl3K4dGmhgID55yf6vJOhnCPLY8DAYjyVSChJ4kmUqSOPa+niCRSpJMJbCb7ZS4ijNzmxVT6izCY8/HaDDO8CcWIIFLCCGEmBVGg5HlBUtZXrAUXdcJJcKMREYZiY4yHD3+diQ6Sn9o4JyOazaaMRmMxJLx4yZxBbAYzRRnJpc9GsSKnYUU2L3ztiVtPBZIT1g72kbLWBvFzkLeu/Le2S7WSSRwCSGEELPMYDCQY3GRY3FRnVt5yn0iiQijUT8GgwGTwYTZaMJkMGMxmjAZzZgNJowG42RoiiVj+MJDDIQHGQj7MreDDIR89AT7Tjq+1WjBY/fgtefjtefjsb1+32v3kG/Lw2Q0ZfX3cC78E+Pp0Z+jrTSPHWEg7Jt8zmq00OBZPIulOz0JXEIIIcQ84DA7cOSc+8StVpOVSnc5lSdMX6HrOmMTfgbCg/SHfQyGhxiNjqVb0ibGjgswxzJgoNhZmJ5h31VGpbuMclcZXnv+tLaMxZNxwokIoXiYcCJCOB4mEA/S7u+iZaztuFUEbCYrjd4lNOTX0eBZTLW7Ys5ONjs3SyWEEEKIrDAYDHjs+Xjs+Sz1Npz0fDQxwdjEGCOZEDYaHWM4OsZwdIS+0AADvr3sYu/k/g6znfJMAEvPtF+G2+oikpggmogSTUaJJiYmbyPHbIskooQTYcLx1wNWPBU/bdntJjvLC5ZmAlYdVTkVc6LV7VxI4BJCCCHEJLvZRqm5hFJXyUnP6brO6MQYPcG+437a/O20+o+c93s6zA6cZgdlrmKcZidOiwOnxYnr6H2zk4qcUipzyudNwDqRBC4hhBBCnBODwTA5XcXKwmWT22PJGH2hAXqCfXQH+4gmotjNdhxmO3aTLX0/c2s/ZpvdbMNpdiyIkZMSuIQQQghxQawmK4tyq1iUWzXbRZmzLv5IKYQQQggxyyRwCSGEEEJkmQQuIYQQQogsk8AlhBBCCJFlEriEEEIIIbJMApcQQgghRJZJ4BJCCCGEyDIJXEIIIYQQWSaBSwghhBAiy7I207ymaTcAbwJ8gK6U+ly23ksIIYQQYi7LSguXpmlO4DvAR5VSDwCrNE27PhvvJYQQQggx12XrkuKlQIdSaiLz+GXg9iy9lxBCCCHEnJatS4rFQOCYx+OZbadVVOTOUlFm532EEAuD1ClCLAwXeq5nK3D5gGNLlpvZdjqGLJVDCCGEEGLWZeuS4qvAIk3TbJnHlwOPZ+m9hBBCCCHmNIOu61k5sKZpNwJvAQaBuIxSFEIIIcRClbXAJYQQQggh0rI2D1e2aJpmBH4PbAGswGLgfmACeC/wBeA6pdT+WStkFp1qfjNN0x4HXMfstgooV0pFZ6OM2aBpWinwRWC1UmrjCc+9A/gp4FZKBWejfNmiadpi0p97J1AJDCulPp85Dy7qv/czfPb1wCeA7cBm4KtKqVdnr6TT70zzGGqa9mngI0qpwtkqX7ac7jzXNO0e4F+BDyulHput8mXTqT67pmm1wNeAbcAa4GdKqUdnr5TT7wzn+QPANcfs+i9KqadnvoTTZ94FroxXlVJfBNA07RHSFdNB0iEsPJsFy6Zj5jdbrpSa0DTt15n5zR5USv0is08d8H8vprCVcQXwCOlKZ5KmaY3Aslkp0czwAv+rlHoEQNO0g5mAneIi/3vn9J/9i8B3lVK/1TTtbuDzwI2zWM5pdbrzXCn1J03TrgE8s1vCrDrpPM+EjkGga7YKNUNOVcf9I/CSUuobmqatBX4JXFSBi9Of5yilrpnNgk23eRe4lFIp0hUumqaZSSdipZTaldk2i6XLulPOb6aU+tgx+/wd8B8zXrIsU0r9KvNlMynzxfSPwPuBT81GubJNKbXthE1GIKSUOgwX99/76T47MAAUZbYVATtmslwz4JTnuaZp+4G3AV8G3jlbhcumU53nSqkjwBFN0/55dko1M0712bn4/9bPdJ6jado/kb56ZQL+Qyk1r/+DOW/XUtQ07WbgMeAxpdT22S7PDDnj/GaapuUC1Rfj5aXT+BfgC0qp2GwXZCZkWnOePBq2FpITPvungXs1Tfsa6eDx8KwWbvqd6jwvBb4EfHJWSiRmy78DmzVN+3fgs8APZ7k8WXXCef4w8E2l1NdInw/zviFh3gYupdSTSqlbgFpN0/56tsszQ842v9m7gR/MaIlmiaZpVaQvrdyjadonMps/pmnahlksVtZomnYtcC3w0dkuy0w7xWd/FPgHpdTHgQ8Af9A07WKay+9U53kpECfdmvtBwKFp2ic0TWuYhfKJmfMj4HuZqxh3A7/QNM07u0XKjhPPc6XUAaVUKPP0s8B1s1W26TLvLilqmrYMqFVKHZ3X6whQN4tFmkmT85tlLjdcDvwXTA4muBn45iyWb8YopbqAdx19rGnavwL/frF1mgfQNO124Ergw0CZpmmLLrZO4qdzqs8OVAF9mV36ANtpXj5fneo8/xel1J8ANE2rAd6tlPryLJZRzIxj/9ZHSffdnLcNJadzmvP8TUqpf8js0gC0zFb5psu8mxYiM6Lhq6RHNFiARtL9liaADwF/D/yE9GiO12arnNlyuvnNNE17I1CplPrP2SxftmiadjVwL3AL8G3g60qpiKZpRaT/1/+FzM9/K6V6Zq+k0yszIu950iPyID0a9VukO9de1H/vZ/jsfuAeYC/pARO/UUr9dlYKmSVnOM/rSbfqfZD0qL1vHNMKMO+d6jwHosA/kW7Bfwn4qVLqyVkrZJac5rOvBz5C+vuuFtihlPrOrBUyC85wnmuAk3SL70rgs0qpplkp5DSZd4FLCCGEEGK+ueiaJoUQQggh5hoJXEIIIYQQWSaBSwghhBAiyyRwCSGEEEJkmQQuIYQQQogsk8AlhBBCCJFlEriEEEIIIbJMApcQQgghRJZJ4BJCCCGEyDIJXEIIIYQQWSaBSwghhBAiyyRwCSGEEEJkmQQuIYQQQogsk8AlhBBCCJFlEriEEEIIIbJMApcQQgghRJaZZ7sA00nTtOuAvwOWAJ9QSj06y0USQsxTmqZtAv4NsAJPZTbbAbtS6iOn2P8dwH8qpTwzV0ohxPnSNO0q4PNALdCglIod89xXgL8CPquU+t50vN9F1cKllHoW+B1wUMKWEOJCKKW2As8BryilHlBKPQA8ADxzmv0fAvwzVT4hxIVRSr1A+hwfAN5zdLumaUXAJqB3usIWXGQtXCfSNO23wDagEnhZKfWQpml3At8AfgnkAuuAtyul2metoEKIOU/TNDPwZaXURzRN+zzp+jMJBJRS/3bMfu8DKoC1wIeVUkdmpcBCiHP1eeC/NE37vlJqAvgb4L+A/wugadr/AD1ADtCnlPq6pmmXAt8GdgBjpFvDliilxk73JhdVC9cp/Egp9SXgb4F/BlBK/R54CehQSv0N8FvgzbNXRCHEHHetpmnfBL4OoGnazcAlSqlPKaU+A9ymadqaY/Z/Vin1z8BDpC9JCiHmtv3Aq8D7NE0rIf0fqcFjnn8s08r9ceCvNE1zK6VeJX1FbVgp9ffADUDoTG9y0bZwZf43ukzTtHVABCg6YZemzO0gUDODRRNCzC9/Vkp9XNM0A9AAvAFwapr2iczzXRxfv7RlbluA5TNXTCHEBfgc8CRQDXwFWHHMc2Wapn0JGCd9ZawACGSeOwSglNp7tje4aAMXcDtwo1LqOgBN0/72hOf1mS+SEGK+UkrpQJOmaXuAS5VSX4bJwTotx+xal3m8BDg44wUVQkyZUuqgpmkvADGl1JCmaQBomrYa+EelVF3m8V0nvPScs4RB1y+u3KFp2rtIh60Pke6ntQ/oBj4JfIx00+F3gF3Ap4H/BDzA+5RSLac4pBBiAdI0bQOvj1L8f0qph4957tOAC0iQHrn4CeBtpOuTLwP5wGrgb5VSrTNcdCHEOTjmHN8JfFIpFc9sLyJ9Ht8C/CPwdqAPOEy6i9KPgZ+SzhKjwL8qpbaf7f0umsCladoNSqlnNE37CLBYKXVii5YQQgghxKy4mC4pfkjTtOuBZWRGFgghhBBCzAUXTQuXEEIIIcRcdbFPCyGEEEIIMevm9SVFTdMWA18k3eGtkvR8GJ/XNM1LusNbG+lh3J9SSg1kXrMe+HdgW2ZOjaPHuoF0p9dmYCnwMaXU6Ex+HiGEEEJcnOZ7C5cX+F+l1FeVUh8G3pYJVF8CnskM2/4d8LVjXrMSeP7Yg2iaZgJ+DvxfpdRXSAe4B2ag/EIIIYRYAOZ14FJKbVNKPXLMJiPpmV5vJz1rLMDLmcdHX/MjIHXCobykF6QdzjxuA67PRpmFEEIIsfDM68B1LE3T7gaeVEodBop5fRbYccCTmXn+lJRSg0CPpmlHZ4XeRHo2WSGEEEKICzav+3AdpWnatcC1wEcym3yAm/SCkrnAqFIqcZbD3Aa8V9O0PtIhrTNLxRVCCCHEAjPvA5emabcDVwIfJr3e0SLgceBS0mucXZ55fDa5SqlPZo75PuAn2SmxEEIIIRaaeT0PV6aD/PPA0Sn1XcC3gEdJLz7ZASwGPnHMKMV7gXeRXq7jQaXUdzPbv016mY4OwAL8m1IqOWMfRgghhBAXrXkduIQQQggh5oOLptO8EEIIIcRcJYFLCCGEECLLJHAJIYQQQmSZBC4hhBBCiCyTwCWEEEIIkWUSuIQQQgghskwClxBCCCFElv3/y6vbYXmNsWwAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "df[::100000].plot(figsize=(10, 6));\n",
    "# plt.savefig('../../images/ch09/io_07.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Data Storage"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 216,
   "metadata": {},
   "outputs": [],
   "source": [
    "import tstables as tstab"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 217,
   "metadata": {},
   "outputs": [],
   "source": [
    "class ts_desc(tb.IsDescription):\n",
    "    timestamp = tb.Int64Col(pos=0)  \n",
    "    ts1 = tb.Float64Col(pos=1)  \n",
    "    ts2 = tb.Float64Col(pos=2)  \n",
    "    ts3 = tb.Float64Col(pos=3)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 218,
   "metadata": {},
   "outputs": [],
   "source": [
    "h5 = tb.open_file(path + 'tstab.h5', 'w')  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 219,
   "metadata": {},
   "outputs": [],
   "source": [
    "ts = h5.create_ts('/', 'ts', ts_desc)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 220,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 2.51 s, sys: 379 ms, total: 2.89 s\n",
      "Wall time: 1.11 s\n"
     ]
    }
   ],
   "source": [
    "%time ts.append(df)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 221,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "tstables.tstable.TsTable"
      ]
     },
     "execution_count": 221,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "type(ts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 222,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "total 320416\r\n",
      "-rw-r--r--  1 503  20  157037368 Dec  1 12:20 tstab.h5\r\n"
     ]
    }
   ],
   "source": [
    "ls -n $path"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 223,
   "metadata": {},
   "outputs": [],
   "source": [
    "read_start_dt = dt.datetime(2019, 2, 1, 0, 0)  \n",
    "read_end_dt = dt.datetime(2019, 2, 5, 23, 59)  #<2>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 224,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 326 ms, sys: 61.1 ms, total: 387 ms\n",
      "Wall time: 103 ms\n"
     ]
    }
   ],
   "source": [
    "%time rows = ts.read_range(read_start_dt, read_end_dt)  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 225,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 431941 entries, 2019-02-01 00:00:00 to 2019-02-05 23:59:00\n",
      "Data columns (total 3 columns):\n",
      "ts1    431941 non-null float64\n",
      "ts2    431941 non-null float64\n",
      "ts3    431941 non-null float64\n",
      "dtypes: float64(3)\n",
      "memory usage: 13.2 MB\n"
     ]
    }
   ],
   "source": [
    "rows.info()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 226,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>ts1</th>\n",
       "      <th>ts2</th>\n",
       "      <th>ts3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2019-02-01 00:00:00</th>\n",
       "      <td>52.063640</td>\n",
       "      <td>40.474580</td>\n",
       "      <td>217.324713</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-02-01 00:00:01</th>\n",
       "      <td>52.087455</td>\n",
       "      <td>40.471911</td>\n",
       "      <td>217.250070</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-02-01 00:00:02</th>\n",
       "      <td>52.084808</td>\n",
       "      <td>40.458013</td>\n",
       "      <td>217.228712</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-02-01 00:00:03</th>\n",
       "      <td>52.073536</td>\n",
       "      <td>40.451408</td>\n",
       "      <td>217.302912</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2019-02-01 00:00:04</th>\n",
       "      <td>52.056133</td>\n",
       "      <td>40.450951</td>\n",
       "      <td>217.207481</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                           ts1        ts2         ts3\n",
       "2019-02-01 00:00:00  52.063640  40.474580  217.324713\n",
       "2019-02-01 00:00:01  52.087455  40.471911  217.250070\n",
       "2019-02-01 00:00:02  52.084808  40.458013  217.228712\n",
       "2019-02-01 00:00:03  52.073536  40.451408  217.302912\n",
       "2019-02-01 00:00:04  52.056133  40.450951  217.207481"
      ]
     },
     "execution_count": 226,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rows.head()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 227,
   "metadata": {},
   "outputs": [],
   "source": [
    "h5.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 228,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "(rows[::500] / rows.iloc[0]).plot(figsize=(10, 6));\n",
    "# plt.savefig('../../images/ch09/io_08.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 229,
   "metadata": {},
   "outputs": [],
   "source": [
    "import random"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 230,
   "metadata": {},
   "outputs": [],
   "source": [
    "h5 = tb.open_file(path + 'tstab.h5', 'r')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 231,
   "metadata": {},
   "outputs": [],
   "source": [
    "ts = h5.root.ts._f_get_timeseries()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 232,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 13.3 s, sys: 645 ms, total: 14 s\n",
      "Wall time: 3.52 s\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "for _ in range(100):  \n",
    "    d = random.randint(1, 24)  \n",
    "    read_start_dt = dt.datetime(2019, 2, d, 0, 0, 0)\n",
    "    read_end_dt = dt.datetime(2019, 2, d + 3, 23, 59, 59)\n",
    "    rows = ts.read_range(read_start_dt, read_end_dt)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 233,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "DatetimeIndex: 334400 entries, 2019-02-24 00:00:00 to 2019-02-27 20:53:19\n",
      "Data columns (total 3 columns):\n",
      "ts1    334400 non-null float64\n",
      "ts2    334400 non-null float64\n",
      "ts3    334400 non-null float64\n",
      "dtypes: float64(3)\n",
      "memory usage: 10.2 MB\n"
     ]
    }
   ],
   "source": [
    "rows.info()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 234,
   "metadata": {},
   "outputs": [],
   "source": [
    "!rm $path/tstab.h5"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "<img src=\"http://hilpisch.com/tpq_logo.png\" alt=\"The Python Quants\" width=\"35%\" align=\"right\" border=\"0\"><br>\n",
    "\n",
    "<a href=\"http://tpq.io\" target=\"_blank\">http://tpq.io</a> | <a href=\"http://twitter.com/dyjh\" target=\"_blank\">@dyjh</a> | <a href=\"mailto:training@tpq.io\">training@tpq.io</a>"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.7"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
